我有兩個列表a = {1,2,2,5,6,6,6,7}
和b = {2,3,3,6,6,6,8}
我希望得到同等的要素,在這種情況下,輸出應爲2 *(2 = 2),9 *(6 = 6)這裏是我的代碼部分如何在Java中將一個迭代器的內容傳遞給另一個迭代器?
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 2012-03-13 18:23:41
@assylias這些是索引。仔細讀。 – Juvanis 2012-03-13 18:24:17
你能解釋一下,那麼,驅逐出境者,因爲我不清楚,要麼? – 2012-03-13 18:25:29