2015-08-25 3 views
1

У меня есть два списка, и я хочу составить список списков. По какой-то причине после того, как я распечатаю каждый список, я получаю массивную запись в массиве. Я использую данные, поступающие с хэш-карты, и вам нужно разбить строку ключа, чтобы вернуть значения, а затем передать целое число в строку для добавления в массив.Изменить список массивов в список списков java

ArrayList<ArrayList<String>> listOLists = new ArrayList<ArrayList<String>>(); 
    ArrayList<String> singleList = new ArrayList<String>(); 
     for (Entry<String, Integer> entry : counts.entrySet()) { 
       String val = entry.getValue().toString();    
       List<String> key = Arrays.asList(entry.getKey().split("@")); 
       singleList.add(key.get(0)); 
       singleList.add(key.get(1)); 
       singleList.add(key.get(2)); 
       singleList.add(val); 
       listOLists.add(singleList); 
     } 


     for(ArrayList<String> s: listOLists){ 
      System.out.println(s); 
     } 

Я получаю:

[Demo-Site, 172.20.58.160, 2015-08-06, 12, Demo-Site, 10.227.145.103, 2015-08-19, 1, Demo-Site, 10.7.0.146, 2015-08-11, 3, 

Я хочу, чтобы в конечном выходе выглядеть примерно так:

[[Demo-site, 172.20.58.160, 2015-08-06, 12], [Demo-site, 10.227.145.103, 2015-08-19, 1]..etc] 
+0

Покажите, что вы получаете и как вы печатаете –

+0

@ sᴜʀᴇsʜᴀᴛᴛᴀ обновленный пост. – Ben

ответ

2

Это потому, что вы добавляете в один и тот же список на каждой итерации. Просто поместите singleList = new ArrayList(); в теле петли tle.

+0

спасибо, что была немой ошибкой. Ценить это. – Ben

1

иметь последний Println как sopln ("[" + с + "]"); что-то вроде этого должно дать вам результат, который вы хотите.

+0

Я не нисходящий, но, нет. неправильно ..... –

+0

Maxwelit имеет – realUser404

Смежные вопросы