【发布时间】:2012-03-13 18:16:57
【问题描述】:
我有两个列表 a = {1,2,2,5,6,6,6,7} 和 b = {2,3,3,6,6,6,8}
我想得到等效的元素,在这种情况下,输出应该是 2 *(2 = 2) 和 9 * (6 = 6) 这是我的代码的一部分
Iterator aIt = a.iterator();
Iterator bIt = b.iterator();
Iterator tempIt = b.iterator();
int aNode = (Integer)aIt.next();
int bNode = (Integer)bIt.next();
Boolean isEquals = false;
while(aIt.hasNext()||bIt.hasNext()){
while(aNode<bNode){
aNode = (Integer)aIt.next();
}
while(aNode>bNode){
bNode = (Integer)bIt.next();
}
while(aNode==bNode){
tempIt = bIt;
while(aNode==bNode){
System.out.println(aNode + " = " + bNode);
bNode = (Integer)tempIt.next();
}
aNode = (Integer)aIt.next();
tempIt = bIt;
bNode = (Integer)tempIt.next();
isEquals = true;
}
if(isEquals){
bIt = tempIt;
isEquals = false;
}
}
但是,在我运行代码之后,我意识到我传递的是 bIt 到 tempIt 的引用,而不是内容。如果我真的想使用迭代器来实现这一点,有什么解决方案吗?非常感谢!
【问题讨论】:
-
不确定我是否理解您如何从 a、b 到
(1,0) (2,0) (4,3) (4,4) (4,5) (5,3)- 您想要进行哪些数据操作? -
@assylias 这些是索引。仔细阅读。
-
你能解释一下吗,驱逐者,因为我也不清楚?
-
@deporter 我已经盯着它看了 2 分钟 - 还是不明白...
-
@andrewcooke (1,0) 表示 a[1] = b[0] 等等。收到了吗?