Чтобы избежать ошибки одновременного изменения, которая может возникнуть при вставке, вы также можете создать временную копию набора, вместо этого выполнить итерацию по копии и изменить оригинал.
ЦИЯ: У меня есть TreeSet пользовательских объектов, и я также использовал собственный компаратор. Я создал итератор для использования в этом TreeSet.
TreeSet<Custom> ts=new TreeSet<Custom>();
Iterator<Custom> itr=ts.iterator();
while(itr.hasNext()){
Custom c=itr.next();
//Code to add a new element to the TreeSet ts
}
ВОПРОС: Хорошо, я хочу знать, что если я добавлю новый элемент в TreeSet в цикле while, тогда этот новый элемент будет отсортирован немедленно. Другими словами, если я добавлю новый элемент в цикл while, и он будет меньше, чем тот, который я сейчас держу в c, то на следующей итерации я получу тот же элемент в c, что и на последней итерации? ( поскольку после сортировки вновь добавленный элемент будет занимать место где-то перед текущим элементом).