Java Academy · Lektion

Sortering/sökning med Collections

Använd Collections.sort, Collections.binarySearch och Comparators för anpassad sortering och sökning.

Lektion 3 av 38 steg

Sortering/sökning med Collections är en gratis lektion i Java Academy på CoddyKit. Detta är lektion 3 av 3. Ni kan läsa hela lektionen gratis nedan och sedan öva praktiskt i webbläsaren med en inbyggd kodredigerare och en AI-handledare som är tillgänglig dygnet runt. Den ingår i lärvägen för Java Academy, och Era framsteg synkroniseras mellan webben och CoddyKit-appen. Kursen i Java Academy innehåller totalt 3 lektioner.

Introduktion

Sortering organiserar data för snabb sökning. Javas Collections innehåller de inbyggda verktygen sort och binarySearch.

Grunderna i sortering

Collections.sort sorterar en List på plats. Som standard används naturlig ordning, till exempel stigande tal och strängar från A till Ö.

Kod: naturlig sortering

Den naturliga ordningen för Integer är stigande. sort() ändrar samma List.

public class Main {
  public static void main(String[] args) {
    java.util.List<Integer> nums = new java.util.ArrayList<>();
    nums.add(5); nums.add(1); nums.add(3);
    java.util.Collections.sort(nums);
    System.out.println(nums); // [1,3,5]
  }
}

Anpassad sortering

En Comparator kan skickas till sortering för valfri ordning: omvänd ordning, efter längd eller enligt andra anpassade regler.

Kod: sortering efter längd

Denna Comparator sorterar strängar efter deras längd.

public class Main {
  public static void main(String[] args) {
    java.util.List<String> words = new java.util.ArrayList<>();
    words.add("Java"); words.add("C"); words.add("Python");

    java.util.Collections.sort(words, (a,b) -> a.length() - b.length());
    System.out.println(words); // [C, Java, Python]
  }
}

Kod: binarySearch

binarySearch hittar snabbt positionen för ett element, men listan måste redan vara sorterad på ett konsekvent sätt.

public class Main {
  public static void main(String[] args) {
    java.util.List<Integer> nums = new java.util.ArrayList<>();
    nums.add(1); nums.add(3); nums.add(5); nums.add(7);
    int idx = java.util.Collections.binarySearch(nums, 5);
    System.out.println("Index of 5 = " + idx);
  }
}

Kontroll av binarySearch

Snabb kontroll: Vad måste vara sant innan Collections.binarySearch används?

Sammanfattning

Sammanfattning: Använd sort() för sortering och binarySearch() för snabba sökningar. Anpassade Comparators gör det möjligt att definiera flexibla sorteringsregler.

Gratis att börja

Lär dig Java med en AI-lärare – gratis

Skriv och kör riktig kod i webbläsaren, få omedelbar hjälp av en AI-lärare dygnet runt och fortsätt där du slutade – på webben eller i appen.

Kurser
104
Lektioner
374

Vanliga frågor

Är lektionen ”Sortering/sökning med Collections” gratis?

Ja – hela texten till ”Sortering/sökning med Collections” kan läsas gratis här på webben. Om Ni vill öva interaktivt med en inbyggd kodredigerare och en AI-handledare som är tillgänglig dygnet runt och låsa upp resten av kursen i Java Academy, kan Ni uppgradera till CoddyKit PRO. Kursen i Java Academy innehåller totalt 3 lektioner.

Vad lär jag mig i ”Sortering/sökning med Collections”?

Använd Collections.sort, Collections.binarySearch och Comparators för anpassad sortering och sökning. Ni övar på Java Academy med praktisk kod som körs direkt i webbläsaren, medan en AI-handledare som är tillgänglig dygnet runt svarar på Era frågor under lektionen.

Behöver jag någon erfarenhet för att börja lära mig Java Academy?

Du behöver inga förkunskaper. Utbildningen i Java Academy på CoddyKit är upplagd för allt från nybörjare till avancerade elever, så att du kan börja här eller från början och gå fram i din egen takt. Detta är lektion 3 av 3.

Hur lång tid tar lektionen ”Sortering/sökning med Collections”?

De flesta CoddyKit-lektioner tar cirka 5–10 minuter. Varje lektion är kort och interaktiv, så att du gör stadiga framsteg och kan fortsätta precis där du slutade – på webben eller i appen.

Kan jag skriva och köra kod i den här Java Academy-lektionen?

Ja. Varje Java Academy-lektion innehåller en inbyggd kodredigerare, så att du kan skriva och köra riktig kod direkt i webbläsaren och få omedelbar AI-feedback – utan lokal installation.

Alla lektioner i den här kursen

  1. Maps och frekvensräkning
  2. Comparable kontra Comparator
  3. Sortering/sökning med Collections
← Tillbaka till Java Academy