ÖVNINGSUPPGIFT

Uppgift 9 – Filtrera ord i en ArrayList

Försök själv först. Ledtrådar och facit finns längre ner – helt utan inloggning.


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]

Tillbaka till översikt