2013-03-05 9 views

Odpowiedz

68

Jeśli mieć inną listę, która zawiera wszystkie elementy, które chcesz dodać, możesz zrobić arList.addAll(otherList). Ewentualnie, jeśli będziesz zawsze dodać te same elementy do listy można utworzyć nową listę, która jest zainicjowany zawierać wszystkie swoje wartości i użyć metody addAll(), coś jak

Integer[] otherList = new Integer[] {1, 2, 3, 4, 5}; 
arList.addAll(Arrays.asList(otherList)); 

lub, jeśli nie aby utworzyć tę niepotrzebną tablicę:

arList.addAll(Arrays.asList(1, 2, 3, 4, 5)); 

w przeciwnym razie trzeba będzie mieć jakąś pętlę, która dodaje wartości do listy indywidualnie.

+0

Naprawdę, myślałem, że był lepszy sposób? No cóż, pętla działa. Thx – batoutofhell

+0

Tak, chyba że chcesz utworzyć nową listę, która jest inicjowana wszystkimi wartościami (zobacz moją edycję powyżej), to są twoje opcje. – scaevity

21

Co to jest "źródło" tych liczb całkowitych? Jeśli jest coś, że trzeba ciężko kodem w kodzie źródłowym, można zrobić

arList.addAll(Arrays.asList(1,1,2,3,5,8,13,21)); 
+0

Jest to zdecydowanie najbardziej zwięzły sposób robienia tego. – krispy

-3

Uważam, że odpowiedź jest niepoprawna powyżej, właściwy sposób zainicjować z wielu wartości byłoby to ...

int[] otherList ={1,2,3,4,5}; 

tak pełna odpowiedź z właściwą inicjalizacji wyglądałby następująco

int[] otherList ={1,2,3,4,5}; 
arList.addAll(Arrays.asList(otherList)); 
+6

To nie kompiluje, ponieważ int jest typem pierwotnym, a Arrays.asList() nie działa poprawnie na tablicach typów pierwotnych. Wybrana odpowiedź używa Integer, i to jest właściwy sposób, aby to zrobić. – krispy

2

Jeśli szukasz, aby uniknąć wielu linii kodu, aby zaoszczędzić miejsce, może to składnia może być przydatna:

 java.util.ArrayList lisFieldNames = new ArrayList() { 
      { 
       add("value1"); 
       add("value2"); 
      } 
     }; 

Usuwanie nowe linie, można pokazać, że skompresowane jako:

 java.util.ArrayList lisFieldNames = new ArrayList() { 
      { 
       add("value1"); add("value2"); (...); 
      } 
     }; 
+0

Nadal wymaga wielu połączeń do 'add()' i dodaje bałagan nawet jeśli jest skompresowany do jednej linii –

+0

Chciałbym mieć wartości w String Ej. String theValues ​​= "1,20,2,1001"; (ręcznie lub załadowane z pliku). Następnie przekaż go do tablicy: Integer [] theArray = theValues.split (",", -1); Po utworzeniu tablicy łatwo jest przekazać ją do ArrayList: ArrayList numbersList = new ArrayList (java.util.Arrays.asList (theArray)); . (Nie testowany) –

Powiązane problemy