E.g。
for(String str : list1) {
...
}
for(String str : list2) {
...
}
假设我们确定list1.size()
等于list2.size()
,如何在一个for
语句中遍历这两个列表?
也许像for(String str1 : list1, str2 : list2)
?
答案 0 :(得分:15)
您可以使用iterators:
Iterator<String> it1 = list1.iterator();
Iterator<String> it2 = list2.iterator();
while(it1.hasNext() && it2.hasNext()) { .. }
或者:
for(Iterator<String> it1 = ... it2..; it1.hasNext() && it2.hasNext();) {...}
答案 1 :(得分:6)
for(int i = 0; i< list1.size(); i++){
String str1 = list1.get(i);
String str2 = list2.get(i);
//do stuff
}
答案 2 :(得分:1)
使用基本循环
for(int index=0; index < list1.size() ; index++){
list1.get(index);
list2.get(index);
}
答案 3 :(得分:1)
使用增强的for
循环,您无法同时遍历两个列表;你必须使用传统的for
循环遍历它:
for (int i = 0; i < list1.size(); i++)
{
String str1 = list1.get(i);
String str2 = list2.get(i);
...
}
答案 4 :(得分:1)
如果有人感兴趣,这个解决方案将完全通过两个列表进行迭代,即使它们的大小不同。
int max = Math.max(list1.size(), list2.size());
for(int i=0; i<max; ++i){
if(list1.size()<i){
list1.get(i);
}
if(list2.size()<i){
list2.get(i);
}
}
答案 5 :(得分:0)
正如你所说的那两个列表大小相同,那么你可以使用“for”循环而不是“for-each”循环。您可以使用list的get(int index)方法在每次迭代期间获取值。
答案 6 :(得分:0)
int index = 0;
for(String str1 : list1) {
str2 = list2.get(index++);
}