Вы можете выполнить удаление, используя условие where на основе результата для evid с более чем результатом
select from my_table
where evid in (
select evid, count(*)
from my_table
group by evid
having count(*) > 1
) and roles = 'T'
Поскольку итератор обычно указывает на один экземпляр в коллекции. Итерируемость подразумевает, что можно получить итератор от объекта для прохождения по его элементам - и нет необходимости перебирать один экземпляр, который представляет собой итератор.
java.util
пакет Согласно исходному JSR, расширенное для цикла для Javaв „ў Язык программирования , предложенные интерфейсы:
java.lang.Iterable
java.lang.ReadOnlyIterator
java.util.Iterator
, но по-видимому этого никогда не происходило) †¦ были разработаны для использования java.lang
пространство имен пакета, а не java.util
.
Для заключения в кавычки JSR:
<час>Эти новые интерфейсы служат для предотвращения зависимости языка на java.util, который иначе закончился бы.
Между прочим, старое java.util.Iterable
получило новое forEach
метод в Java 8 + для использования с синтаксисом лямбды (передающий Consumer
).
Вот пример. List
интерфейс расширяется Iterable
интерфейс, поскольку любой список несет forEach
метод.
List
.of ( "dog" , "cat" , "bird" )
.forEach ( ( String animal ) -> System.out.println ( "animal = " + animal ) );
Для простоты Iterator и Iterable - это две разные концепции, Iterable - это просто сокращение от «Я могу вернуть Iterator». Я думаю, что ваш код должен быть:
for(Object o : someContainer) {
}
с someContainer instanceof SomeContainer расширяет Iterable
Итератор с состоянием. Идея состоит в том, что если вы вызовете Iterable.iterator ()
дважды, вы получите независимых итераторов - в любом случае, для большинства итераций. Это явно не будет иметь место в вашем сценарии.
Например, я обычно могу написать:
public void iterateOver(Iterable<String> strings)
{
for (String x : strings)
{
System.out.println(x);
}
for (String x : strings)
{
System.out.println(x);
}
}
Это должно напечатать коллекцию дважды - но с вашей схемой второй цикл всегда завершится мгновенно.