Java-тест специфического свойства объекта с использованием Collection.contains () - PullRequest
3 голосов
/ 23 апреля 2010

В Java как проверить, содержит ли Коллекция объектов объект в зависимости от одного из его свойств.

Например, я хотел бы проверить, содержит ли Collection<myObjects> экземпляр myObjects, который имеет myObjects.name= "myName".

Ответы [ 4 ]

3 голосов
/ 23 апреля 2010

Рассмотрите возможность использования карты.

Map<String,myObjects> myMap = new HashMap<String,myObjects>();
myMap.put(myObject.name,myObject);
3 голосов
/ 23 апреля 2010

Вам придется повторить и сделать сравнение.

2 голосов
/ 23 апреля 2010

Вы можете использовать коллекции Apache, они предоставляют множество полезных функций, включая предикат:

public class MyPredicate implements Predicate {
  public boolean evaluate(Object input) {
    return (MyObject).name = "myName";
  }
}

, затем вы можете проверить свою коллекцию, используя:

   CollectionUtils.find(myCollection, new MyPredicate());

Это вернет первоеобъект, соответствующий предикату или ноль, если ни один не соответствует ему.

0 голосов
/ 23 апреля 2010

Если у вас есть контроль над тем, как собираются данные, вы также можете иметь некоторый «обратный индекс» для этого свойства;Индекс может быть отображением между именем и набором myObjects с этим именем.Таким образом, вы можете эффективно получить все элементы с заданным именем.Вы можете добавить больше индексов таким же образом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...