我想知道是否有这种方法可以通过扩展为java中的每个循环迭代多个集合。
类似于:
for (Object element : collection1, collection2, ....)
// do something ...
由于
答案 0 :(得分:21)
您可以使用Guava的Iterables.concat()
:
for (Foo element : Iterables.concat(collection1, collection2)) {
foo.frob();
}
答案 1 :(得分:2)
Collection<Foo> collection1 = ...
Collection<Foo> collection2 = ...
Collection<Foo> collection3 = ...
...
Collection<Foo> all = ...
all.addAll(collection1);
all.addAll(collection2);
all.addAll(collection3);
...
for(Foo element : all)
{
}
答案 2 :(得分:1)
如果您的列表长度相同,只需使用原始CREATE OR REPLACE TRIGGER BIEmprunter
BEFORE INSERT OR UPDATE OF numexemplaire ON emprunter
FOR EACH ROW
DECLARE
livreEmpruntable INTEGER;
BEGIN
SELECT exemplaire.empruntable
INTO livreEmpruntable
FROM exemplaire
join emprunter
ON emprunter.numexemplaire = exemplaire.numexemplaire;
IF livreEmpruntable != 1 THEN
raise_application_error(-20000, 'exemplaire non empruntable');
END if;
END;
循环:
for
有效!
答案 3 :(得分:0)
使用普通Java 8且没有任何其他库:
["A", "B", "C", "D", "E", "F"]
然后您可以将其用作:
public static <T> Iterable<T> compositeIterable(Collection<? extends T>... collections)
{
Stream<T> compositeStream = Stream.of(collections).flatMap(c-> c.stream());
return compositeStream::iterator;
}