0

我还是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 持有者。

4

2 回答 2

1

您不需要在这里使用迭代器。相反,使用这样的增强for循环

for (String player1 : players1) {
    for (String player2 : players2) {
        System.out.println("player1 is: " + player1 + ", player2 is: " + player2);
    }
}
于 2013-03-21T15:50:16.940 回答
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(),则两个列表的大小相同。
于 2013-03-21T15:33:46.827 回答