2015-04-04 7 views
8

Можно ли добавить elementd одного Arraylist другому Arraylist? например, если у Arraylist есть элемент 3,6,3,8,5 в индексе 0,1,2,3,4, теперь я хочу добавить 3,6,3,8,5 в другой ArrayList в индекс 0, Является ли это возможным?Добавить элементы одного массива ArrayList в другой ArrayList

ArrayList<String> num = new ArrayList<String>(); 
num.add("3"); 
num.add("6"); 
num.add("3"); 
num.add("8"); 
num.add("5"); 
ArrayList<String> result = new ArrayList<String>(); 
for (int i = 0; i < num.size(); i++) 
{ 
     result.addAll(i,num); 
} 

Я пробовал это, но он не работает. что я хочу, когда я пытаюсь System.out.println(result.get(0)); результат должен быть [3 6 3 8 5].

+0

Пожалуйста, объясните, что вы хотите. Я подозреваю, что люди в замешательстве. Что вам нужно, чтобы результат был после того, как вы закончили? – ajb

+0

Проверьте эту ссылку для ArrayList of ArrayList http://stackoverflow.com/questions/25147799/java-arraylist-of-arraylist – codevscolor

ответ

0

Попробуйте этот пример кода

ArrayList<ArrayList<String>> nodes = new ArrayList<ArrayList<String>>(); 
    ArrayList<String> nodeList = new ArrayList<String>(); 
    nodes.add(nodeList); 
+0

Это не сработает. –

+0

ссылаются на эту ссылку – malli

+0

http://www.tutorialhall.com/2015/03/how-to-add-arraylist-into-another-arraylist-java-code.html – malli

1

Ваш список результатов должен быть вложенными. Он должен иметь такую ​​форму:

List<List<Integer>> result = new ArrayList<>(); 

Вы можете просто сделать что

result.add(0, num); 
+0

Обратите внимание, что если вы используете версию ниже java 7, вам нужно объявить результат следующим образом: Список <Список > result = new ArrayList <Список >(); –

3

Чтобы просто скопировать все элементы, которые вы можете сделать

ArrayList<String> result = new ArrayList<String>(num); 

Demo

и если вы хотите скопировать все элементы по определенному индексу, который вы должны изменить, результат Arra Мастер стилей

ArrayList<List<String>> result = new ArrayList<List<String>>(); 
result.add(0, num); // 0 is the index 

Demo

15

Я думаю, что вы пытаетесь сделать, это:

for (int i = 0; i < num.size(); i++) { 
    result.add(i, num.get(i)); 
} 

Или, может быть, именно это:

result.addAll(num); 

Какую код действительно ли вы добавляете все num до result много раз ... в последовательных стартовых позициях. Это странно.


UPDATE

Что я хочу, когда я пытаюсь System.out.println(result.get(0)); результат должен быть [3 6 3 8 5].

Ах ... Я понимаю ... вы пытаетесь создать список строк, где строки являются представлением входных списков:

ли это:

for (int i = 0; i < num.size(); i++) { 
    result.add(i, num.toString()); 
} 

Это даст вам результат, о котором вы просите.

Другая возможность заключается в том, что вы хотите получить список списков строк:

ArrayList<ArrayList<String>> result = new ArrayList<>(); 
for (int i = 0; i < num.size(); i++) { 
    result.add(i, num); 
} 

Это будет также дать вам выход вы просите ... хотя и по другой причине.

+0

это просто копирует элемент из одного Arraylist в другой. то, что я хочу, это скопировать элемент num в индекс 0. –

+0

@koshishkharel Прошел ли следующий шаг логического входа, чтобы попробовать работать? Это будет 'result.addAll (0, num)'. – glglgl

+0

@glglgl Что делать, если num принимает входные данные из файла и файла, содержит несколько строк. здесь первая строка файла - 3,6,3,8,5. каждая строка должна быть добавлена ​​в другой индекс результата. –

0

не используют весь метод, если положить его в цикле, вы должны использовать добавить

если все, что вы хотите использовать addAll поставить его вне цикла.

1
ArrayList<String> obj1 = new ArrayList<String>(); 

obj1.add("3"); 
obj1.add("6"); 
obj1.add("3"); 
obj1.add("8"); 
obj1.add("5"); 

ArrayList obj2 = new ArrayList(); 

obj2.add(0, obj1);; 

System.out.println("Size of the arraylist is --> "+obj2.size()); 

System.out.println("Value at index 0 --> "+obj2); 
Смежные вопросы