Hur man använder en Java ArrayList

Hur man använder en Java ArrayList

Till Java ArrayList är en storlek som kan ändras i allmänhet. Det ger de flesta av de faciliteter som vanligtvis förväntas av arrays på andra språk. Dessa inkluderar: åtkomst till element med hjälp av ett index, tillägg, borttagning och uppdatering av element, dynamisk storleksändring, iterering över elementen, etc. De flesta av dessa operationer har specialjusterats för allmänt bruk.





hur man har en animerad tapet

Det finns några andra typer av 'matriser' (klasser som implementerar Lista gränssnitt, för att vara tekniskt) som är avsedda för särskilda ändamål. Dessa inkluderar:





  • Länkad lista stöder snabb insättning och borttagning vid mellanliggande index.
  • Vektor liknar en ArrayList men är synkroniserad och passar i stället för en ArrayList för applikationer med flera trådar.
  • Stack stöder operationer för att efterlikna en sist-i-först-ut-lista. Det förlänger Vektor och är därför synkroniserad.

Dessa specialklasser omfattas inte av denna artikel. Du lär dig dock hur du konfigurerar och använder en Java ArrayList för allmänt bruk.





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 = new ArrayList();

Om du råkar veta hur många objekt din matrislista kommer att innehålla kan du ange den initiala kapaciteten. Denna initiala kapacitet är bara en ledtråd för minnesallokering - arraylistan är inte begränsad till att hålla det angivna antalet objekt. Om du vet och anger den initiala kapaciteten, du makt få en liten prestandaförbättring.



ArrayList alist = new ArrayList(20);

Befolkning av en ArrayList

Lägga till objekt i slutet

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

ArrayList alist = new ArrayList();
alist.add('apple');
alist.add('banana');
alist.add('cantaloupe');
alist.add('orange');
System.out.println(alist);
# prints
[apple, banana, cantaloupe, orange]

Använd metoden för att hitta hur många objekt som finns i arraylistan storlek() .





System.out.println('Number of elements in the arraylist: ' + alist.size());
# prints
Number of elements in the arraylist: 4

Lägga till objekt på ett specificerat index

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

alist.add(3, 'grapes');
System.out.println(alist);
# prints
[apple, banana, cantaloupe, grapes, orange]

Lägga till en massa artiklar

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





List items = Arrays.asList('pear', 'cherry');
alist.addAll(items);
System.out.println(alist);
# prints
[apple, banana, cantaloupe, grapes, orange, pear, cherry]

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

Få tillgång till objekt

När objekten har lagts till i matrislistan, hur får vi åtkomst till dem igen?

Åtkomst med ett index

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

hur man tvingar avstängning macbook pro
String item = alist.get(2);
System.out.println('Item at index 2 is: ' + item);
# prints
Item at index 2 is: 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 finns i arrayen och hämta objektet med hjälp av det returnerade indexet.

System.out.println(alist);
int index = alist.indexOf('orange');
if ( 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 objektet inte finns i arraylistan? De index för() metod returnerar -1 när objektet inte hittas.

index = alist.indexOf('grape');
if ( index <0 )
System.out.println('Item 'grape' not found');
else
System.out.println('Item 'grape' found at index ' + index);
# prints
Item 'grape' not found

Iterering över en matrislista

Naturligtvis är den vanligaste användningen av en ArrayList är iterating ö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 objekten för någon form av behandling.

for (String fruit : alist) {
System.out.println('Found fruit '' + fruit + ''');
}
# prints
Found fruit 'apple'
Found fruit 'banana'
Found fruit 'cantaloupe'
Found fruit 'grapes'
Found fruit 'orange'
Found fruit 'pear'
Found fruit 'cherry'

Denna kod använder Java Enhanced For-Loop som introducerades i Java 1.5. Innan dess kunde du iterera över objekten med en iterator. En iterator används också när du behöver avlägsna element under iterationsprocessen som exemplet nedan illustrerar. (Observera att vi gör en kopia av arraylistan och arbetar med kopian.)

ArrayList blist = new ArrayList(alist);
for (Iterator iter = blist.iterator() ; iter.hasNext() ; ) {
String fruit = iter.next();
if ( fruit.startsWith('c') )
iter.remove();
else
System.out.println('Keeping '' + fruit + ''');
}
# prints
Keeping 'apple'
Keeping 'banana'
Keeping 'grapes'
Keeping 'orange'
Keeping 'pear'

Byte av artiklar

När objekt har lagts till behöver vi ett sätt att ersätta oönskade objekt. Det kan göras med hjälp av uppsättning() metod med index.

alist.set(5, 'pineapple');
System.out.println(alist);
# prints
[apple, banana, cantaloupe, grapes, orange, pineapple, cherry]

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ände index för() beskrivs ovan) kan du använda avlägsna() metod med index. Det returnerar det borttagna elementet.

String fruit = alist.remove(2);
System.out.println('Removed element at 2: ' + fruit);
# prints
Removed element at 2: cantaloupe

Du kan också ange elementet för att ta bort först förekomst av elementet i listan. Metoden returnerar Sann om elementet hittades och togs bort.

hur man byter butik i itunes
fruit = 'grapes';
System.out.println('Remove ' +fruit+ ' from the list? ' + alist.remove(fruit));
# prints
Remove grapes from the list? true

Hur använder du ArrayList i dina projekt och vilka speciella problem har du mött? Meddela oss i kommentarerna nedan.

Dela med sig Dela med sig Tweet E-post Så här får du tillgång till Googles inbyggda bubblanivå på Android

Om du någonsin har behövt se till att något är i nivå med en nypa, kan du nu få en bubbelnivå på din telefon på några sekunder.

Läs Nästa
Relaterade ämnen
  • Programmering
  • Java
Om författaren Jay Sridhar(17 artiklar publicerade) Mer från Jay Sridhar

Prenumerera på vårt nyhetsbrev

Gå med i vårt nyhetsbrev för tekniska tips, recensioner, gratis e -böcker och exklusiva erbjudanden!

Klicka här för att prenumerera