2013-07-23 3 views
0

Итак, у меня есть 3 списка массивов, и они имеют одинаковый размер, я пытаюсь напечатать их в файле excel, который работает, однако IP и GEO возвращают только первое значение и более.Использование вложенного цикла в нескольких списках массивов

Это мой код:

for (String url : IPGrabber.URLArray) { 
     Row row = sheet.createRow(rownum++); 
     row.createCell(0).setCellValue(url); 
     for (String ip : IPGrabber.IPArray) { 
      row.createCell(1).setCellValue(ip); 
     } 
     for (String geo : GEOLookup.GEOArray) { 
      row.createCell(2).setCellValue(geo); 
     } 
} 

Это выход в первенствует

http://www.google.com 199.59.148.82 United States 
http://www.google.com 199.59.148.82 United States 
http://www.mcbay.net 199.59.148.82 United States 
http://www.facebook.com 199.59.148.82 United States 
http://twitter.com 199.59.148.82 United States 

Как вы можете видеть URLArray и IPArray являются repeatign же значение

Любая помощь будет значительно оценил попытки множества разных методов.

ответ

0

Вы делаете неправильный цикл for. Вы должны сделать что-то похожее на:

Java-подобный синтаксис:

for (int i = 0; i < IPGrabber.URLArray.size(); i++) 
{ 
Row row = sheet.createRow(rownum++); 
row.createCell(0).setCellValue(IPGrabber.URLArray.get(i)); 
row.createCell(1).setCellValue(IPGrabber.IPArray.get(i)); 
row.createCell(2).setCellValue(GEOLookup.GEOArray.get(i)); 
} 

Как ArrayList имеют одинаковый размер.

+0

Работал отлично! Благодаря :) – TehBawz

0

если массивы всегда одинаковый размер, вы могли бы написать это следующим образом:

Java пример

for (int i = 0; i < IPGrabber.URLArray.getSize(); i++) 
{ 
    String url = IPGrabber.URLArray.elementAt(i); 
    String ip = IPGrabber.IPArray.elementAt(i); 
    String geo = GEOLookup.GEOArray.elementAt(i); 

    // TODO: code to insert into the cell 
} 

EDIT: На самом деле я вижу свою ошибку ... Теперь два внутренние петли будут всегда в конечном итоге вставляют свой последний элемент в ячейку строк, поэтому вы всегда получаете одинаковое значение. Измените код, как я предложил, и он будет работать.

+0

Что вы подразумеваете под элементом elementAt в этом утверждении? – TehBawz

+0

elementAt (index) в основном такой же, как get (index) - он обычно используется в Java, и вы никогда не говорили, какой язык вы использовали, поэтому я написал ответ в стиле Java. – munyul

+0

Теперь имеет смысл, спасибо. – TehBawz

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