我想检查Java-8-Stream中两个元素的顺序。 我有这个Iterator-Solution:
public static boolean isBefore (A a1,
A a2,
Stream<A> as) {
Iterator<A> it = as.iterator ();
while (it.hasNext ()) {
A a = it.next ();
if (a == a1) {
return true;
} else if (a == a2) {
return false;
}
}
throw new IllegalArgumentException (
a1 + " and + " a2 + " arent elements of the stream!");
}
是否有一个没有迭代器的解决方案,功能更强大/非命令式?
答案 0 :(得分:3)
可能是这样的
as.filter (a -> (a==a1) || (a==a2)).findFirst ()
然后检查结果是a1还是a2还是空的。 对不起,我没有给出完整的解决方案,如果从我的智能手机上很难做到