У меня есть два списка 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
, а не содержание.Есть ли решение, если я действительно хочу использовать итератор для достижения этой цели?Большое спасибо!