Я бы хотел сравнить массив строк с множеством объектов, где объект имеет строковое поле.А затем вернуть объект, который равен данной строке.Но я хотел бы по возможности избегать для каждого цикла.
Любая идея, как я могу сделать это с потоком API?
Итак, позвольте мне вставить пример кода:
class TestObj {
private String str;
private String name;
public TestObj(String str, String name) {
this.setStr(str);
this.setName(name);
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getStr() {
return str;
}
public void setStr(String str) {
this.str = str;
}
}
И фактический код:
Set<TestObj> allObjects = new HashSet<>();
allObjects.add(new TestObj("s", "aaa"));
allObjects.add(new TestObj("d", "uuu"));
allObjects.add(new TestObj("a", "ggg"));
allObjects.add(new TestObj("c", "dd"));
String[] arr = {"a", "b", "e", "f"};
Set<TestObj> objectsToReturn = new HashSet<>();
for (String string : arr) {
for (TestObj testObj : objectsToReturn) {
if(string.equals(testObj.getStr())) {
objectsToReturn.add(testObj);
}
}
}