Iterate over Arraylist<String[]>
我有一个包含字符串数组的数组列表,我不知道如何循环。迭代器对我来说是新的,尽管我过去使用过它们,但我不知道在这里应该做什么。
1 2 3
| Iterator <String[]> iterator = list. iterator();
while (iterator. hasNext()) {
String trip ="Till:" + iterator. next(0) +" | Fr?n:" + list. get(4) +" | Kostar:" + list. get(1) +"kr | Avg?r:" + list. get(2) +" | Ankomst Tid:" + list. get(3) +" | Antal bokningar:" + list. get(4); |
这是我正在做的一些试验。我认为iterator.next()将返回当前行上的StringArray,因此我尝试了例如iterator.next(0)。据我所知,get(x)只给我一行。
在上面的代码中,我希望每个行字符串数组都有一个特定的索引。像这样:
- 有一个细微的区别,作者试图确定如何在循环中使用数组值。
这是因为您有一个数组列表,而不是字符串列表。
1 2 3 4
| List <String[]> list = //some data
for (String[] array : list ){
System. out. println(array [3] +":" + array [5]);
} |
如果要对每个字符串进行迭代,则必须迭代两次。
编辑
上面是使用迭代器的简写。
1 2 3 4 5 6
| List <String[]> list = //some data
Iterator <String[]> itr = list. iterator();
while (itr. hasNext()){
String[] array = itr. next(); // You were just missing saving the value for reuse
System. out. println(array [3] +":" + array [5]);
} |
您可以这样做而不必担心代码中的迭代器:
1 2 3 4 5 6 7 8 9
| List <String[]> test = new ArrayList <>();
for(String[] array : test ) {
//Iterate over inner array:
for(String s : array ) {
System. out. println(s );
}
//or access directly
System. out. println(array [0]);
} |
1 2 3 4 5
| Iterator <String[]> iterator = list. iterator();
while (iterator. hasNext()) {
String[] row = iterator. next();
//Do stuff with row
} |
如果使用列表,还可以使用for循环:
1 2 3
| for(String[] row : list ) {
//Do stuff with row
} |
arraylist中的每个项都是一个字符串[],因此iterator.next()返回一个字符串[]。一旦拥有了字符串数组,就可以像使用数组索引表示法的任何其他数组一样访问它。item[0]是数组中的第一个项,item.length告诉您数组中有多少项。
在调用list.get(4)的地方,还将返回一个字符串数组,这几乎肯定不是您在输出中想要的。