Lägg till flera objekt i en Java ArrayList

1. Översikt över ArrayList

I den här snabbhandledningen visar vi hur du lägger till flera objekt i en redan initierad ArrayList .

För en introduktion till användningen av ArrayList , se den här artikeln här.

2. Lägg till alla

Först och främst ska vi introducera ett enkelt sätt att lägga till flera objekt i en ArrayList .

Först använder vi addAll () , som tar en samling som argument:

List anotherList = Arrays.asList(5, 12, 9, 3, 15, 88); list.addAll(anotherList);

Det är viktigt att komma ihåg att elementen som läggs till i den första listan refererar till samma objekt som elementen i en annan lista .

Av den anledningen kommer alla ändringar som görs i ett av dessa element att påverka båda listorna.

3. Collections.addAll

Den Samlingar klassen består uteslutande av statiska metoder som verkar på eller retur samlingar.

En av dem är addAll , som behöver en destinationslista och objekten som ska läggas till kan anges individuellt eller som en matris.

Här är det ett exempel på hur man använder det med enskilda element:

List list = new ArrayList(); Collections.addAll(list, 1, 2, 3, 4, 5);

Och en annan för att exemplifiera operationen med två matriser:

List list = new ArrayList(); Integer[] otherList = new Integer[] {1, 2, 3, 4, 5}; Collections.addAll(list, otherList);

På samma sätt som det som förklaras i ovanstående avsnitt kommer innehållet i båda listorna här att hänvisa till samma objekt.

4. Använda Java 8

Denna version av Java öppnar våra möjligheter genom att lägga till nya verktyg. Den som vi kommer att utforska i nästa exempel är Stream :

List source = ...; List target = ...; source.stream() .forEachOrdered(target::add);

De största fördelarna med detta sätt är möjligheten att använda skip och filter. I nästa exempel ska vi hoppa över det första elementet:

source.stream() .skip(1) .forEachOrdered(target::add);

Det är möjligt att filtrera elementen efter våra behov. Till exempel heltalsvärdet:

source.stream() .filter(i -> i > 10) .forEachOrdered(target::add);

Slutligen finns det scenarier där vi vill arbeta på ett nollsäkert sätt. För dessa kan vi använda Valfritt :

Optional.ofNullable(source).ifPresent(target::addAll)

I exemplet ovan lägger vi till element från källa till mål med metoden addAll .

5. Sammanfattning

I den här artikeln har vi utforskat olika sätt att lägga till flera objekt i en redan initialiserad ArrayList .

Som alltid kan kodprover hittas på GitHub.