-1

我的代码:

Object tempDifference;
Object testUser;
testUser = users.get(0);
it8 = difference_time.iterator();
it9 = users.iterator();
Object tempUser;
tempDifference = difference_time.get(0);

while (it9.hasNext()) {
  tempUser = it9.next();
  System.out.println(testUser+" "+tempUser);
  if (testUser.equals(tempUser)) {
    times.add(tempDifference);
    testUser = tempUser;
  } else {
    times.add(value);
    testUser = tempUser;
  }
  tempDifference = it8.next();
}
  • 输入是:1 2 2

  • 输出是:1 1

  • 我要输出1 2

为什么1 1开始时输出不好?

4

1 回答 1

1

大多数迭代器在第一个元素之前开始,因此第一次调用 next() 会将它们移动到第一个元素,而不是第二个元素。

因此,如果 users = {1, 2},并且稍微简化一下:

//set test = 1, the first entry in the list
test = users.get(0); 
//get a new iterator, starting before the first element
it9 = users.iterator(); 
// move to first element (the next one), so temp == 1
temp = it9.next(); 
// print values "1 1"
System.out.println(test+" "+temp);
于 2012-12-05T18:59:09.283 回答