如何让两个数组逐步进入迭代器?

时间:2013-03-21 15:29:41

标签: java list methods arraylist

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

2 个答案:

答案 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(),则两个列表的大小相同。