Sådan bruges en Java ArrayList

Sådan bruges en Java ArrayList

Til Java ArrayList er en generel størrelse, der kan ændres. Det giver de fleste af de faciliteter, der generelt forventes af arrays på andre sprog. Disse omfatter: adgang til elementer ved hjælp af et indeks, tilføjelse, fjernelse og opdatering af elementer, dynamisk ændring af størrelsen, iterering over elementerne osv. De fleste af disse operationer er specielt tilpasset til generel brug.





android læste tekstbeskeder højt

Der er et par andre typer 'arrays' (klasser, der implementerer Liste interface, for at være teknisk), der er beregnet til særlige formål. Disse omfatter:





  • LinkedList understøtter hurtig indsættelse og fjernelse ved mellemliggende indekser.
  • Vektor ligner en ArrayList men er synkroniseret og er egnet i stedet for en ArrayList til applikationer med flere tråde.
  • Stak understøtter operationer til efterligning af en sidste-i-først-ud-liste. Det udvider Vektor og er derfor synkroniseret.

Disse specialklasser er uden for denne artikels anvendelsesområde. Du lærer dog, hvordan du konfigurerer og bruger en generel Java ArrayList.





Oprettelse af en ArrayList

Oprettelse af en ArrayList er enkel. Et tomt ArrayList kan oprettes ved hjælp af konstruktøren uden argumenter. Her opretter vi en tom arraylist til at holde strenge.

ArrayList alist = new ArrayList();

Hvis du tilfældigvis ved, hvor mange elementer din array -liste vil indeholde, kan du angive den oprindelige kapacitet. Denne indledende kapacitet er blot et tip til hukommelsestildeling - arraylisten er ikke begrænset til at indeholde det angivne antal elementer. Hvis du kender og angiver den oprindelige kapacitet, kan du magt få en lille forbedring af ydeevnen.



ArrayList alist = new ArrayList(20);

Befolkning af en ArrayList

Tilføjelse af varer i slutningen

Det er ganske let at udfylde en arraylist. Brug bare tilføje() metode til at tilføje et enkelt element til slutningen af ​​arraylisten. 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]

Brug metoden til at finde ud af, hvor mange elementer der er i arraylisten størrelse() .





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

Tilføjelse af varer på et specificeret indeks

Vil du tilføje en vare til et vilkårligt indeks? Angiv indekset som det første argument, og elementet tilføjes ved dette indeks:

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

Tilføjelse af en masse ting

Du kan også tilføje varer fra enhver samling i Java -samlingens hierarki. An ArrayList er en bestemt type kaldet Liste . Her er en måde at konstruere en Liste fra en masse ting (ved hjælp af Arrays.asList () ) og tilføj det 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 angive et indeks som det første argument her for at tilføje elementerne, der starter ved dette indeks.

Adgang til varer

Når elementerne er føjet til arraylisten, hvordan får vi adgang til dem igen?

Adgang med et indeks

Hvis du kender varens indeks, kan du bruge få() metode til at hente elementet ved dette indeks.

hvilket Windows -program bruges ofte til at oprette forbindelse til en linux -server via ssh?
String item = alist.get(2);
System.out.println('Item at index 2 is: ' + item);
# prints
Item at index 2 is: cantaloupe

At finde varer

Hvad hvis du ikke kender varens indeks? Du kan bruge indeks af() for at kontrollere, om varen er til stede i arrayet og hente varen ved hjælp af det returnerede 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

Hvad hvis elementet ikke er til stede i arraylisten? Det indeks af() metode returnerer -1, når varen ikke findes.

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 over en ArrayList

Selvfølgelig er den mest almindelige brug af en ArrayList gentager sig over elementerne. Dette kan opnås på en række måder. Vi viser et par enkle her.

Her er den enkleste måde at iterere over en arraylist og ekstrahere elementerne til en form for 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 kode bruger Java Enhanced For-Loop, som blev introduceret i Java 1.5. Inden da kunne du gentage elementerne med en iterator. En iterator bruges også, når du har brug for det fjerne elementer under iterationsprocessen som eksemplet herunder illustrerer. (Bemærk, at vi laver en kopi af arraylisten og arbejder på 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'

Udskiftning af varer

Når varer er tilføjet, har vi brug for en måde at erstatte uønskede varer. Det kan gøres ved at bruge sæt() metode med et indeks.

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

Fjernelse af varer

Lad os nu se, hvordan vi kan fjerne elementer fra en arraylist. Hvis du kender varens indeks (måske brugte du indeks af() beskrevet ovenfor), kan du bruge fjerne() metode med indekset. Det returnerer det fjernede element.

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

Du kan også angive det element, der skal fjernes først forekomsten af ​​elementet på listen. Metoden vender tilbage sand hvis elementet blev fundet og fjernet.

hvordan man fjerner en hjemmegruppe windows 10
fruit = 'grapes';
System.out.println('Remove ' +fruit+ ' from the list? ' + alist.remove(fruit));
# prints
Remove grapes from the list? true

Hvordan bruger du ArrayList i dine projekter, og hvilke særlige problemer har du stået over for? Lad os vide det i kommentarerne herunder.

Del Del Tweet E -mail Sådan får du adgang til Googles indbyggede bobleniveau på Android

Hvis du nogensinde har haft brug for at sikre, at noget er i niveau med en knivspids, kan du nu få et bobleniveau på din telefon på få sekunder.

Læs Næste
Relaterede emner
  • Programmering
  • Java
Om forfatteren Jay Sridhar(17 artikler udgivet) Mere fra Jay Sridhar

Abonner på vores nyhedsbrev

Tilmeld dig vores nyhedsbrev for at få tekniske tips, anmeldelser, gratis e -bøger og eksklusive tilbud!

Klik her for at abonnere