例如
for(String str : list1) {
...
}
for(String str : list2) {
...
}
假设我们确定list1.size()
equals list2.size()
,如何在一个for
语句中遍历这两个列表?
也许像for(String str1 : list1, str2 : list2)
什么?
例如
for(String str : list1) {
...
}
for(String str : list2) {
...
}
假设我们确定list1.size()
equals list2.size()
,如何在一个for
语句中遍历这两个列表?
也许像for(String str1 : list1, str2 : list2)
什么?
您可以使用迭代器:
Iterator<String> it1 = list1.iterator();
Iterator<String> it2 = list2.iterator();
while(it1.hasNext() && it2.hasNext()) { .. }
或者:
for(Iterator<String> it1 = ... it2..; it1.hasNext() && it2.hasNext();) {...}
for(int i = 0; i< list1.size(); i++){
String str1 = list1.get(i);
String str2 = list2.get(i);
//do stuff
}
for
增强的循环不能同时遍历两个列表;您必须使用传统for
循环遍历它:
for (int i = 0; i < list1.size(); i++)
{
String str1 = list1.get(i);
String str2 = list2.get(i);
...
}
使用基本循环
for(int index=0; index < list1.size() ; index++){
list1.get(index);
list2.get(index);
}
如果有人感兴趣,即使它们的大小不同,这也是将完全遍历两个列表的解决方案。
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);
}
}
正如您所说,两个列表的大小相同,那么您可以使用“for”循环而不是“for-each”循环。您可以使用 list 的 get(int index) 方法在每次迭代期间获取值。
int index = 0;
for(String str1 : list1) {
str2 = list2.get(index++);
}