Hvordan bruke en Java ArrayList

Hvordan bruke en Java ArrayList

Til Java ArrayList er en generell størrelse som kan endres. Det gir de fleste fasilitetene som vanligvis forventes av matriser på andre språk. Disse inkluderer: tilgang til elementer ved hjelp av en indeks, legge til, fjerne og oppdatere elementer, dynamisk størrelse på nytt, iterere over elementene, etc. De fleste av disse operasjonene er spesielt tilpasset for generell bruk.





lommebøker som beskytter kredittkortene dine

Det er noen få andre typer 'arrays' (klasser som implementerer Liste grensesnitt, for å være teknisk) som er beregnet på spesielle formål. Disse inkluderer:





  • LinkedList støtter rask innsetting og fjerning på mellomliggende indekser.
  • Vector ligner på en ArrayList men er synkronisert og passer i stedet for en ArrayList for applikasjoner med flere tråder.
  • Stable støtter operasjoner for å etterligne en sist-inn-først-ut-liste. Det strekker seg Vector og er derfor synkronisert.

Disse spesialklassene er utenfor denne artikkelen. Du lærer imidlertid hvordan du konfigurerer og bruker en generell Java ArrayList.





Opprette en ArrayList

Opprette en ArrayList er enkelt. En tom ArrayList kan opprettes ved å bruke konstruktøren uten argumenter. Her lager vi en tom matriseliste for å holde strenger.

ArrayList alist = new ArrayList();

Hvis du tilfeldigvis vet hvor mange elementer matriselisten din vil inneholde, kan du angi den opprinnelige kapasiteten. Denne innledende kapasiteten er bare et hint for minnetildeling - matriselisten er ikke begrenset til å inneholde det angitte antallet elementer. Hvis du kjenner og spesifiserer den opprinnelige kapasiteten, kan du kanskje få en liten forbedring i ytelsen.



ArrayList alist = new ArrayList(20);

Befolkning av en ArrayList

Legger til elementer på slutten

Å fylle ut en matriseliste er ganske enkelt. Bare bruk legge til() metode for å legge til et enkelt element på slutten av matriselisten. Her er et eksempel:

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]

For å finne hvor mange elementer det er i matriselisten, bruk metoden størrelse() .





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

Legge til elementer på en spesifisert indeks

Vil du legge til et element på en vilkårlig indeks? Angi indeksen som det første argumentet, og elementet legges til i indeksen:

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

Legge til en haug med varer

Du kan også legge til elementer fra en hvilken som helst samling i Java -samlingshierarkiet. An ArrayList er en bestemt type kalt Liste . Her er en måte å konstruere en Liste fra en haug med varer (bruker Arrays.asList () ) og legg den til en ArrayList .





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

Selvfølgelig kan du spesifisere en indeks som det første argumentet her for å legge til elementene som starter med den indeksen.

Få tilgang til varer

Når elementene er lagt til i matriselisten, hvordan får vi tilgang til dem igjen?

Tilgang med en indeks

Hvis du kjenner varens indeks, kan du bruke få() metode for å hente elementet ved den indeksen.

kan du legge til apper på en vizio smart -tv
String item = alist.get(2);
System.out.println('Item at index 2 is: ' + item);
# prints
Item at index 2 is: cantaloupe

Finne gjenstander

Hva om du ikke kjenner indeksen til varen? Du kan bruke oversikt over() for å sjekke om varen er til stede i matrisen og hente varen ved hjelp av den returnerte indeksen.

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

Hva om elementet ikke er til stede i matriselisten? De oversikt over() metoden returnerer -1 når elementet ikke blir funnet.

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

Iterating Over an ArrayList

Selvfølgelig er den vanligste bruken av en ArrayList gjentar seg over elementene. Dette kan oppnås på en rekke måter. Vi viser et par enkle her.

Her er den enkleste måten å iterere over en matriseliste og trekke ut elementene for en slags 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'

Denne koden bruker Java Enhanced For-Loop som ble introdusert i Java 1.5. Før det kunne du iterere over elementene med en iterator. En iterator brukes også når du trenger det ta bort elementer under iterasjonsprosessen som eksemplet nedenfor illustrerer. (Vær oppmerksom på at vi lager en kopi av arraylisten og jobber med kopien.)

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'

Bytte ut varer

Når elementene er lagt til, trenger vi en måte å erstatte uønskede varer. Det kan gjøres ved å bruke sett() metode med indeks.

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

Fjerne elementer

La oss nå se hvordan vi kan fjerne elementer fra en matriseliste. Hvis du kjenner indeksen til varen (kanskje du brukte oversikt over() beskrevet ovenfor), kan du bruke ta bort() metode med indeksen. Det returnerer det fjernede elementet.

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

Du kan også angi elementet du vil fjerne først forekomsten av elementet i listen. Metoden returnerer ekte hvis elementet ble funnet og fjernet.

hvordan du bruker tl
fruit = 'grapes';
System.out.println('Remove ' +fruit+ ' from the list? ' + alist.remove(fruit));
# prints
Remove grapes from the list? true

Hvordan bruker du ArrayList i prosjektene dine, og hvilke spesielle problemer har du møtt? Gi oss beskjed i kommentarene nedenfor.

Dele Dele kvitring E -post Slik får du tilgang til Googles innebygde boblenivå på Android

Hvis du noen gang har trengt å sørge for at noe er i vater, kan du nå få et boblenivå på telefonen din på få sekunder.

Les neste
Relaterte temaer
  • Programmering
  • Java
Om forfatteren Jay Sridhar(17 artikler publisert) Mer fra Jay Sridhar

Abonner på vårt nyhetsbrev

Bli med i vårt nyhetsbrev for tekniske tips, anmeldelser, gratis ebøker og eksklusive tilbud!

Klikk her for å abonnere