Kaip naudotis „Java ArrayList“

Kaip naudotis „Java ArrayList“

Į „Java“ „ArrayList“ yra bendrosios paskirties masyvas, kurio dydį galima pakeisti. Jame yra dauguma patogumų, kurių paprastai tikimasi iš masyvų kitomis kalbomis. Tai apima: prieigą prie elementų naudojant indeksą, elementų pridėjimą, pašalinimą ir atnaujinimą, dinaminį dydžio keitimą, elementų kartojimą ir tt Dauguma šių operacijų buvo specialiai pritaikytos bendram naudojimui.





kuo skiriasi facebook ir facebook lite

Yra keletas kitų tipų „masyvų“ (klasių, įgyvendinančių Sąrašas techninė sąsaja), skirtos specialiems tikslams. Jie apima:





  • „LinkedList“ palaiko greitą įterpimą ir pašalinimą ties tarpiniais indeksais.
  • Vektorius yra panašus į an „ArrayList“ bet yra sinchronizuotas ir tinka vietoje „ArrayList“ skirta daugiasluoksnėms programoms.
  • Stack palaiko paskutinio pirmojo sąrašo imitavimo operacijas. Jis pratęsia Vektorius ir todėl yra sinchronizuojamas.

Šios specialios klasės nepatenka į šio straipsnio taikymo sritį. Tačiau jūs išmoksite nustatyti ir naudoti bendrosios paskirties „Java ArrayList“.





„ArrayList“ kūrimas

Kuriant an „ArrayList“ yra paprasta. Tuščia „ArrayList“ gali būti sukurtas naudojant konstruktorių be argumentų. Čia sukuriame tuščią masyvų sąrašą stygoms laikyti.

ArrayList alist = new ArrayList();

Jei žinote, kiek elementų bus jūsų masyvo sąraše, galite nurodyti pradinę talpą. Ši pradinė talpa yra tik užuomina į atminties paskirstymą - masyvo sąrašas neapsiriboja tik nurodyto elementų skaičiaus laikymu. Jei žinote ir nurodote pradinį pajėgumą, jūs gali šiek tiek pagerinti našumą.



ArrayList alist = new ArrayList(20);

„ArrayList“ pildymas

Elementų pridėjimas pabaigoje

Užpildyti masyvistą yra gana paprasta. Tiesiog naudokite papildyti() būdas pridėti vieną elementą prie masyvo sąrašo pabaigos. Štai pavyzdys:

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]

Norėdami sužinoti, kiek elementų yra masyvo sąraše, naudokite šį metodą dydis () .





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

Elementų pridėjimas pagal nurodytą indeksą

Norite pridėti elementą prie savavališko indekso? Nurodykite indeksą kaip pirmąjį argumentą ir elementas pridedamas prie to indekso:

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

Pridedama krūva elementų

Taip pat galite pridėti elementų iš bet kurios „Java“ kolekcijų hierarchijos kolekcijos. An „ArrayList“ yra specifinis tipas, vadinamas Sąrašas . Čia yra būdas sukurti a Sąrašas iš daugybės daiktų (naudojant Masyvai.asList () ) ir pridėkite jį prie „ArrayList“ .





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

Žinoma, kaip pirmąjį argumentą čia galite nurodyti indeksą, kad pridėtumėte elementus, prasidedančius tuo indeksu.

Prieiga prie elementų

Kai elementai bus įtraukti į masyvo sąrašą, kaip vėl juos pasiekti?

Prieiga naudojant indeksą

Jei žinote elemento indeksą, galite naudoti gauti () metodas gauti elementą pagal tą indeksą.

kaip atidaryti stiklainį „Windows 10“
String item = alist.get(2);
System.out.println('Item at index 2 is: ' + item);
# prints
Item at index 2 is: cantaloupe

Daiktų radimas

Ką daryti, jei nežinote prekės indekso? Tu gali naudoti indexOf () kad patikrintumėte, ar elementas yra masyve, ir gaukite elementą naudodami grąžintą indeksą.

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

Ką daryti, jei elemento nėra masyvo sąraše? The indexOf () metodas grąžina -1, kai elementas nerastas.

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

Iteracija per „ArrayList“

Žinoma, dažniausiai naudojamas an „ArrayList“ kartojasi per elementus. Tai galima padaryti įvairiais būdais. Čia parodome keletą paprastų.

Čia yra paprasčiausias būdas pakartoti masyvo sąrašą ir išgauti elementus tam tikram apdorojimui.

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'

Šis kodas naudoja „Java Enhanced For-Loop“, kuris buvo įdiegtas „Java 1.5“. Prieš tai galite pakartoti elementus naudodami iteratorių. Kai reikia, taip pat naudojamas iteratorius pašalinti elementai iteracijos proceso metu, kaip parodyta žemiau esančiame pavyzdyje. (Atminkite, kad mes padarome masyvo sąrašo kopiją ir dirbame prie kopijos.)

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'

Elementų keitimas

Kai elementai yra pridėti, mums reikia būdo pakeisti nepageidaujamus elementus. Tai galima padaryti naudojant rinkinys () metodas su indeksu.

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

Elementų pašalinimas

Dabar pažiūrėkime, kaip galime pašalinti elementus iš masyvo sąrašo. Jei žinote elemento indeksą (galbūt naudojote indexOf () aprašytą aukščiau), galite naudoti pašalinti () metodas su indeksu. Jis grąžina pašalintą elementą.

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

Taip pat galite nurodyti elementą, kurį norite pašalinti Pirmas elemento atsiradimas sąraše. Metodas grįžta tiesa jei elementas buvo rastas ir pašalintas.

kaip pakeisti, kur „iTunes“ saugo atsargines kopijas
fruit = 'grapes';
System.out.println('Remove ' +fruit+ ' from the list? ' + alist.remove(fruit));
# prints
Remove grapes from the list? true

Kaip jūs naudojate „ArrayList“ savo projektuose ir su kokiomis ypatingomis problemomis susidūrėte? Praneškite mums toliau pateiktose pastabose.

Dalintis Dalintis „Tweet“ Paštu Kaip pasiekti „Google“ įmontuotą burbulo lygį „Android“

Jei kada nors reikėjo įsitikinti, kad kažkas yra lygiai, dabar galite per kelias sekundes gauti burbulo lygį savo telefone.

Skaityti toliau
Susijusios temos
  • Programavimas
  • „Java“
Apie autorių Jay Sridhar(Paskelbti 17 straipsnių) Daugiau iš Jay Sridhar

Prenumeruokite mūsų naujienlaiškį

Prisijunkite prie mūsų naujienlaiškio, kad gautumėte techninių patarimų, apžvalgų, nemokamų el. Knygų ir išskirtinių pasiūlymų!

Norėdami užsiprenumeruoti, spustelėkite čia