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å AndroidOm 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
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