I've tried to creating ranking from two sorted lists.
List<Ordered<String>> rankedList = Collections.synchronizedList(WebCBIR.run(queryData, clusters, idf));
List<Ordered<String>> rankedList2 = Collections.synchronizedList(WebCBIR.run(queryData, clusters));
LinkedList<Ordered<String>> result = new LinkedList<>();
Iterator<Ordered<String>> it = rankedList.iterator();
Iterator<Ordered<String>> it2 = rankedList2.iterator();
while (it.hasNext() && it2.hasNext()) {
Ordered<String> o1 = it.next();
Ordered<String> o2 = it2.next();
Ordered<String> o = null;
if(o1.value() > o2.value()){
o = o1;
rankedList.remove(o);
rankedList2.remove(o);
}
else{
o = o2;
rankedList.remove(o);
rankedList2.remove(o);
}
result.add(o);
}
This code calls java.util.ConcurrentModificationException. How to deal with it?