我还是java的新手并遇到了这个问题。
我有两个数据数组,每个数据包含数字详细信息。
static List<String> players1 = new ArrayList<String>();
static List<String> players2 = new ArrayList<String>();
// Player 1 array plays player 2 array. List is always different on generation.
我想要做的是在while循环中使用这两个字符串来遍历每个player1数组列表([4],[5]等)字符串然后获取player2字符串([0],[1]等然后返回播放器1下一个字符串值。我原以为这样做的最好方法是使用迭代器。
Iterator it = players1.iterator();
(it.hasNext()) {
//get array string
// ++1??
Iterator p2 = players2.iterator();
(p2.hasNext()) {
//get array string id.
//return to next p1 string value.
}
所以我从player1数组中得到一个id然后遍历player2数组并从那里得到一个id,它返回while循环中的下一个player1迭代器值,并从player2数组中获取下一个id,依此类推。 ..
我的问题是,这是一个很好的方法吗?或者是否有一种简单的方法可以逐步循环遍历数组。如果您有任何关于如何使其更好或使用其他方法的示例,那就太棒了。
由于 Java Holder。
答案 0 :(得分:1)
这里不需要使用迭代器。相反,请使用enhanced for
loop,如下所示:
for (String player1 : players1) {
for (String player2 : players2) {
System.out.println("player1 is: " + player1 + ", player2 is: " + player2);
}
}
答案 1 :(得分:0)
Iterator<String> it1 = players1.iterator();
Iterator<String> it2 = players2.iterator();
while (it1.hasNext()&&it2.hasNext()) {
String id1 = it1.next();
String id2 = it2.next();
}
循环结束后
it1.hasNext()
,则players2
更短。it2.hasNext()
,则players1
更短。 !it1.hasNext()&&!it2.hasNext()
,则两个列表的大小相同。