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 AndroidisKui 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
Telli meie uudiskiri
Liituge meie uudiskirjaga, et saada tehnilisi näpunäiteid, ülevaateid, tasuta e -raamatuid ja eksklusiivseid pakkumisi!
Tellimiseks klõpsake siin