Så här använder du en Java ArrayList

Så här använder du en Java ArrayList / Programmering

En Java Arraylist är en universalformat som kan ändras. Det ger de flesta av de faciliteter som vanligtvis förväntas av arrays på andra språk. Dessa inkluderar: tillgång till element som använder ett index, lägga till, ta bort och uppdatera element, dynamisk omklassificering, iterering över elementen etc. De flesta av dessa operationer har speciellt tweaked för allmänt bruk.

Det finns några andra typer av “arrayer” (klasser som implementerar Lista gränssnitt, för att vara tekniskt) som är avsedda för speciella ändamål. Dessa inkluderar:

  • Länkad lista stöder snabb infogning och borttagning vid mellanliggande index.
  • Vektor liknar en Arraylist men är synkroniserad och lämpar sig istället för en Arraylist för multi-threaded applikationer.
  • Stack stöder operationer för att efterlikna en sista in-först-ut-lista. Det sträcker sig Vektor och är därför synkroniserad.

Dessa speciella klasser ligger utanför ramen för denna artikel. Du kommer emellertid att lära dig hur du konfigurerar och använder en generell Java ArrayList.

Skapa en ArrayList

Skapa en Arraylist det är enkelt. En tom Arraylist kan skapas med hjälp av konstruktorn utan argument. Här skapar vi en tom arraylist för att hålla strängar.

Arraylist alist = ny ArrayList(); 

Om du råkar veta hur många objekt din matrislista innehåller, kan du ange initialkapacitet. Denna initialkapacitet är bara en ledtråd för minnesallokering - arraylisten är inte begränsad till att hålla det angivna antalet objekt. Om du vet och ange initialkapaciteten, ska du makt få en liten förbättring av prestanda.

Arraylist alist = ny ArrayList(20); 

Populera en ArrayList

Lägga till objekt i slutet

Att populera en arraylist är ganska lätt. Använd bara Lägg till() metod för att lägga till ett enda objekt till slutet av arraylisten. Här är ett exempel:

Arraylist alist = ny ArrayList(); alist.add ( "äpple"); alist.add ( "banana"); alist.add ( "cantaloupemelon"); alist.add ( "orange"); System.out.println (alist); # utskrifter [äpple, banan, cantaloupe, apelsin] 

För att hitta hur många saker som finns i arraylisten, använd metoden storlek().

System.out.println ("Antal element i arraylisten:" + alist.size ()); # utskrifter Antal element i arraylisten: 4

Lägga till objekt i ett specificerat index

Vill du lägga till ett objekt på ett godtyckligt index? Ange indexet som första argumentet och objektet läggs till i det indexet:

alist.add (3, "druvor"); System.out.println (alist); # utskrifter [äpple, banan, cantaloupe, druvor, apelsin] 

Lägga till en massa artiklar

Du kan lägga till objekt från någon samling i Java-samlingshierarkin också. En Arraylist är en specifik typ som kallas Lista. Här är ett sätt att konstruera en Lista från ett gäng objekt (med Arrays.asList ()) och lägg till det till en Arraylist.

Lista poster = Arrays.asList ("päron", "körsbär"); alist.addAll (objekt); System.out.println (alist); # utskrifter [äpple, banan, cantaloupe, druvor, apelsin, päron, körsbär] 

Naturligtvis kan du ange ett index som det första argumentet här för att lägga till de objekt som börjar vid det indexet.

Åtkomst till objekt

När objekten har lagts till arraylisten, hur får vi tillgång till dem igen?

Åtkomst med ett index

Om du känner till objektets index kan du använda skaffa sig() metod för att hämta elementet vid det indexet.

Stringobjekt = alist.get (2); System.out.println ("Objekt i index 2 är:" + post); # utskrifter Artikel i index 2 är: cantaloupe 

Hitta saker

Vad händer om du inte känner till objektets index? Du kan använda index för() för att kontrollera om objektet är närvarande i matrisen och hämta objektet med hjälp av det returnerade indexet.

System.out.println (alist); int index = alist.indexOf ("orange"); om (index < 0 ) System.out.println("Item \"orange\" not found"); else System.out.println("Item \"orange\" found at index " + index); # prints [apple, banana, cantaloupe, grapes, orange, pear, cherry] Item "orange" found at index 4 

Vad händer om föremålet inte finns i arraylisten? De index för() Metoden returnerar -1 när objektet inte hittas.

index = alist.indexOf ("druva"); om (index < 0 ) System.out.println("Item \"grape\" not found"); else System.out.println("Item \"grape\" found at index " + index); # prints Item "grape" not found 

Iterating över en ArrayList

Naturligtvis är den vanligaste användningen av en Arraylist iterar över elementen. Detta kan åstadkommas på ett antal sätt. Vi visar ett par enkla här.

Här är det enklaste sättet att iterera över en arraylist och extrahera föremålen för någon form av bearbetning.

för (Stringfrukt: alist) System.out.println ("Found fruit \" "+ fruit +" \ "");  # utskrifter Funnet frukt "äpple" Fruktfrukt "banan" Fruktfrukt "cantaloupe" Fruktfrukt "druvor" Fruktfrukt "apelsin" Fruktfrukt "päron" Fruktfrukt "körsbär" 

Denna kod använder Java Enhanced For-Loop som introducerades i Java 1.5. Innan det kan du iterera över objekten med en iterator. En iterator används också när du behöver ta bort element under iterationsprocessen som exemplet nedan illustrerar. (Observera att vi gör en kopia av arraylisten och jobbar på kopian.)

Arraylist blist = ny ArrayList(en lista); för (Iterator iter = blist.iterator (); iter.hasNext ();) String fruit = iter.next (); om (fruit.startsWith ("c")) iter.remove (); annars System.out.println ("Keeping \" "fruit +" \ "");  # utskrifter Att hålla "äpple" Att hålla "banan" Att hålla "druvor" Att hålla "orange" Att hålla "päron" 

Byta ut varor

När saker har lagts till behöver vi ett sätt att ersätta oönskade artiklar. Det kan göras genom att använda uppsättning() metod med ett index.

alist.set (5, "ananas"); System.out.println (alist); # utskrifter [äpple, banan, cantaloupe, druvor, apelsin, ananas, körsbär] 

Ta bort objekt

Låt oss nu se hur vi kan ta bort objekt från en arraylist. Om du känner till objektets index (kanske du använt index för() beskrivet ovan), kan du använda ta bort() metod med indexet. Den returnerar det borttagna elementet.

String frukt = alist.remove (2); System.out.println ("Removed element at 2:" + fruit); # utskrifter borttaget element vid 2: cantaloupe 

Du kan också ange elementet för att ta bort först Förekomsten av elementet i listan. Metoden returnerar Sann om elementet hittades och avlägsnades.

frukt = "druvor"; System.out.println ("Remove" + fruit + "från listan?" + Alist.remove (frukt)); # utskrifter Ta bort druvor från listan? Sann 

Hur använder du Arraylist i dina projekt och vilka speciella problem har du mött? Vänligen meddela oss i kommentarerna nedan.

Utforska mer om: Java.