У меня есть простой класс:
public class ForStream {
private int shortId;
private long longId;
public ForStream(int shortId, long longId) {
this.shortId = shortId;
this.longId = longId;
}
public int getShortId() {
return shortId;
}
public void setShortId(int shortId) {
this.shortId = shortId;
}
public long getLongId() {
return longId;
}
public void setLongId(long longId) {
this.longId = longId;
}
}
Необходимо найти появление нескольких подстрок в массиве. Я делаю это (возможно, это неэффективно):
public static void main(String[] args) {
List<ForStream> resList = List.of(
new ForStream(689, 10000000001L),
new ForStream(781, 10000000001L),
new ForStream(785, 10000000001L),
new ForStream(689, 10000000002L),
new ForStream(689, 10000000003L),
new ForStream(781, 10000000004L),
new ForStream(785, 10000000004L)
);
boolean isEqual = !resList.stream()
.filter(p -> p.getLongId() == 10000000001L)
.filter(p -> p.getShortId() == 689)
.filter(p -> p.getShortId() == 781)
.filter(p -> p.getShortId() == 785)
.collect(Collectors.toList()).isEmpty();
}
Это значение false. Но 689, 781 и 785 содержат список.