Java ArrayListi kasutamine

Java ArrayListi kasutamine

Java juurde ArrayList on üldotstarbeline suuruse muutmise massiiv. See pakub enamikku teistes keeltes massiividelt üldiselt oodatavatest võimalustest. Nende hulka kuuluvad: elementidele juurdepääs indeksi abil, elementide lisamine, eemaldamine ja värskendamine, dünaamiline suuruse muutmine, elementide üle iteratsioon jne. Enamik neist toimingutest on spetsiaalselt kohandatud üldotstarbeliseks kasutamiseks.





mida tähendab vähese andmeside režiim

On veel mõnda tüüpi massiive (klassid, mis rakendavad Nimekiri tehniline liides), mis on ette nähtud eriotstarbeks. Need sisaldavad:





  • LinkedList toetab kiiret sisestamist ja eemaldamist vaheindeksite juures.
  • Vektor on sarnane an ArrayList kuid on sünkroonitud ja sobib selle asemel ArrayList mitme keermega rakenduste jaoks.
  • Stack toetab operatsioone, mis jäljendavad viimati esimesena väljanimekirja. See laiendab Vektor ja seega on see sünkroonitud.

Need eriklassid jäävad käesoleva artikli reguleerimisalast välja. Siiski saate teada, kuidas seadistada ja kasutada üldotstarbelist Java ArrayListi.





ArrayListi loomine

Luues an ArrayList on lihtne. Tühi ArrayList saab luua argumentideta konstruktori abil. Siin loome stringide hoidmiseks tühja massiilisti.

ArrayList alist = new ArrayList();

Kui juhtute teadma, kui palju üksusi teie massiivi loend sisaldab, saate määrata esialgse mahutavuse. See esialgne maht on vaid vihje mälu eraldamiseks - massiil ei piirdu ainult määratud arvu üksuste hoidmisega. Kui teate ja täpsustate esialgset võimsust, siis võiks jõudlust veidi parandada.



ArrayList alist = new ArrayList(20);

ArrayListi täitmine

Üksuste lisamine lõpus

Massiilisti täitmine on üsna lihtne. Kasutage lihtsalt lisama() meetod ühe üksuse lisamiseks massiivloendi lõppu. Siin on näide:

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]

Kasutage seda meetodit, et leida, kui palju üksusi on masüülistis suurus () .





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

Üksuste lisamine määratud indeksiga

Kas soovite lisada objekti suvalise indeksi juurde? Määrake indeks esimeseks argumendiks ja üksus lisatakse sellele indeksile:

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

Hunniku esemete lisamine

Saate lisada ka üksusi Java kogude hierarhia mis tahes kogudest. An ArrayList on konkreetne tüüp, mida nimetatakse Nimekiri . Siin on võimalus konstrueerida a Nimekiri hunnikust esemetest (kasutades Massiivid.asList () ) ja lisage see loendisse ArrayList .





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

Loomulikult saate siin esimese argumendina määrata indeksi, et lisada sellest indeksist algavaid üksusi.

Juurdepääs üksustele

Kuidas me neile uuesti juurde pääseme, kui üksused on masüülnimekirja lisatud?

Juurdepääs indeksiga

Kui teate üksuse indeksit, saate seda kasutada saada () meetod selle indeksi elemendi hankimiseks.

erinevus 3. ja 5. seeria õunakella vahel
String item = alist.get(2);
System.out.println('Item at index 2 is: ' + item);
# prints
Item at index 2 is: cantaloupe

Üksuste leidmine

Mis siis, kui te ei tea üksuse indeksit? Sa võid kasutada indeks() et kontrollida, kas üksus on massiivis olemas, ja tagastatud indeksi abil üksus alla laadida.

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

Mis saab siis, kui üksust pole tabelis? The indeks() meetod tagastab -1, kui üksust ei leita.

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 üle ArrayList

Loomulikult on kõige tavalisem kasutamine ArrayList see kordab elemente. Seda saab teha mitmel viisil. Näitame siin paari lihtsat.

Siin on lihtsaim viis massiivist üle itereerida ja üksused mingiks töötlemiseks välja võtta.

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'

See kood kasutab Java täiustatud silmust, mis võeti kasutusele Java 1.5-s. Enne seda saate üksusi iteraatoriga üle korrata. Vajadusel kasutatakse ka iteraatorit eemaldada elemente iteratsiooni käigus, nagu illustreerib allolev näide. (Pange tähele, et teeme koopia arraylistist ja töötame selle kallal.)

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'

Asjade asendamine

Kui üksused on lisatud, vajame võimalust soovimatute üksuste asendamiseks. Seda saab teha kasutades seatud () meetod indeksiga.

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

Üksuste eemaldamine

Vaatame nüüd, kuidas me saame massiivloendist üksusi eemaldada. Kui teate üksuse indeksit (võib -olla kasutasite seda indeks() eespool kirjeldatud), saate kasutada eemalda () meetod indeksiga. See tagastab eemaldatud elemendi.

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

Samuti saate määrata elemendi, mille eemaldada esimene elemendi esinemine loendis. Meetod naaseb tõsi kui element leiti ja eemaldati.

primevideo.com pole teie konto jaoks praegu saadaval
fruit = 'grapes';
System.out.println('Remove ' +fruit+ ' from the list? ' + alist.remove(fruit));
# prints
Remove grapes from the list? true

Kuidas te kasutate ArrayList oma projektides ja milliste eriprobleemidega olete silmitsi seisnud? Palun andke meile sellest allpool kommentaarides teada.

Jaga Jaga Piiksuma E -post Kuidas pääseda juurde Google'i sisseehitatud mullitasemele Androidis

Kui teil on kunagi olnud vaja veenduda, et midagi on näpuotsaga tasemel, saate nüüd mõne sekundiga oma telefonile mullitaseme.

Loe edasi
Seotud teemad
  • Programmeerimine
  • Java
Autori kohta Jay Sridhar(17 artiklit avaldatud) Veel Jay Sridharilt

Telli meie uudiskiri

Liituge meie uudiskirjaga, et saada tehnilisi näpunäiteid, ülevaateid, tasuta e -raamatuid ja eksklusiivseid pakkumisi!

Tellimiseks klõpsake siin