Список пользовательских объектов в приложении Spring (список, массив, карта и т. Д.) В JAVA - PullRequest
0 голосов
/ 20 мая 2019

в соответствии с требованием, я должен создать список пользовательских объектов, который содержит такие детали, как идентификатор, имя, адрес в коллекции (массив, список, карта и т. Д.). Как просмотреть список коллекции для полученияуникальные записи, основанные на идентификаторе?

Я создал объект List, который содержит различные вариации коллекции, такие как arraylist, set, map и т. д. После того, как пользовательские значения объекта присвоены List, он преобразуется в ObjectОбъект класса. Например, я создал пользовательский объект в виде хэш-карты с ключом 1 и значением в качестве пользовательского объекта id = 1, name = aaa, address = delhi и назначил пользовательский объект в список, и яповторение того же процесса для создания пользовательского объекта с использованием arraylist и установки, а также ... как перевести порядок объектов List в пользовательские данные, уникально основанные на id?

List<Collection> customobjectlist

customobjectlist.add(list)
customobjectlist.add(set)
customobjectlist.add(map)

здесь каждый список, набор и карта содержит 5Пользовательские объекты. Мне нужно просмотреть список пользовательских объектов, чтобы получить уникальные сведения о пользователе на основе идентификатора?

1 Ответ

0 голосов
/ 20 мая 2019

Map не является Collection в Java, поэтому ваш код:

List<Collection> customobjectlist

customobjectlist.add(list)
customobjectlist.add(set)
customobjectlist.add(map)

недопустим, если ваша переменная map является экземпляром подкласса интерфейса Map.

Во-вторых, вам нужно набрать Collection (пример: List<Collection<MyObject>>), иначе вы получите Object из коллекций, вам придется проверять instanceof каждый раз, это действительноне очень хорошая вещь!

Так что если вы наберете Collection и добавите только Collection<MyObject> (не Map) к customobjectlist (List, Set, Queue, Stack, Vector, ...) вам нужно выполнить цикл по коллекциям, чтобы найти свой объект:

for (Collection coll : customobjectlist) {
  for (MyObject obj: coll) {
    if (theIdImLookingFor.equals(obj.getId()) {
      // find it
    }
  }
}

Это не единственный способ сделать это, в Java 8+ вы можете использовать потоковый API:

customobjectlist.stream()
  .flatMap(Collection::stream)
  .findFirst(obj -> theIdImLookingFor.equals(obj.getId()))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...