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]
Vanliga frågor om Uppgift 9 – Filtrera ord i en ArrayList
Vad handlar Uppgift 9 – Filtrera ord i en ArrayList om?
Övningsuppgift i Java: Filtrera ord i en ArrayList. Träna själv med fria ledtrådar och facit.
Hur övar jag på Uppgift 9 – Filtrera ord i en ArrayList?
Kör exemplen själv, ändra ett värde i taget och jämför sedan resultatet med förklaringen på sidan.