Nyckelord: ArrayList
Ta bort alla element i en ArrayList som är längre än fem bokstäver
Använd dig av den givna ArrayList (med maträtter) nedan och skriv ett program som tar bort alla ord som är längre än fem bokstäver. Skriv ut de namnen som är kvar i listan efter för att kontrollera att det blev rätt utfört.
import java.util.ArrayList;
public class Names {
public static void main(String[] args) {
//Skapar en ArrayList med maträtter
ArrayList<String> food = new ArrayList<String>();
food.add("Palt");
food.add("Sallad");
food.add("Kyckling");
food.add("Lax");
food.add("Pizza");
food.add("Hamburgare");
food.add("Lasagne");
food.add("Falafel");
food.add("Soppa");
}
}
Ledtråd
Skapa en for-loop som går igenom alla element i listan. Observera att du behöver gå igenom listan baklänges.
Lösning
import java.util.ArrayList;
public class Names {
public static void main(String[] args) {
//Skapar en ArrayList med maträtter
ArrayList<String> food = new ArrayList<String>();
food.add("Palt");
food.add("Sallad");
food.add("Kyckling");
food.add("Lax");
food.add("Pizza");
food.add("Hamburgare");
food.add("Lasagne");
food.add("Falafel");
food.add("Soppa");
/* Går igenom alla element baklänges.
* Tar bort element om antal bokstäver är större än 5. */
for(int i = food.size() - 1; i >= 0 ; i--){
if(food.get(i).length() > 5){
food.remove(i);
}
}
System.out.println(food);
}
}
Observera att vi går igenom listan baklänges. Om vi skulle gå igenom listan framlänges, skulle vi missa att kontrollera vissa index, eftersom indexen på elementen förskjuts varje gång vi tar bort ett element.
Utskriften blir:
[Palt, Lax, Pizza, Soppa]