Вы можете использовать поддержку потоков, например ...
Object match = objectList.stream().filter(o -> o.someValue()).equals(o2.someValue())).orElse(null);
if (match == null) {
// No matches...
}
Изначально я думал о чем-то подобном (или даже использовать anyMatch), но кажется, что OPхочет что-то сделать для каждого совпадения (// Делать вещи)
Хорошо, так что вы можете использовать anyMatch
, чтобы «посмотреть», чтобы увидеть, есть ли «какие-либо» совпадения в потоке и сделатьрешение, основанное на этом, например ...
List<String> objectList = new ArrayList<String>(5);
objectList.add("A");
objectList.add("B");
objectList.add("C");
objectList.add("D");
objectList.add("A");
objectList.add("E");
objectList.add("F");
objectList.add("A");
objectList.add("G");
objectList.add("H");
objectList.add("I");
objectList.add("J");
objectList.add("A");
objectList.add("K");
objectList.add("A");
objectList.add("M");
if (objectList.stream().anyMatch(o -> o.equals("A"))) {
objectList.stream().filter(o -> o.equals("A")).forEach(o -> System.out.println(o));
} else {
// No matches
}