Получение подсписка в Java - PullRequest
       14

Получение подсписка в Java

0 голосов
/ 26 декабря 2011

В Java я хочу получить подсписок из списка.я не могу использовать подсписок java, так как я хочу подсписок, основанный на некотором значении в списке.

У меня есть список объектов DTO.DTO похож на

MyClass myClass;
int hit;

А MyClass похож на

String webName;
...

Я хочу получить списки с одинаковым именем web (мне нужно добавить общее количество совпадений с webName и удалить дубликаты объектов DTO, которые имеютто же имя)

Ответы [ 2 ]

1 голос
/ 26 декабря 2011

Судя по вашему вопросу, сейчас у вас есть

List<MyDTO> dtos;

, и вы хотите перейти к

List<List<MyDTO>> sublists;

Так что просто итерируйте ваши dto, найдите правильную запись вкарта и добавьте попадания в контейнер.Карта будет гарантировать, что у вас есть только одна запись для каждого веб-имени.

Map<String, List<MyDTO>> hitmap = new HashMap<String, List<MyDTO>>();

for (MyDTO dto: dtos){
  String webname = dto.getMyClass().getWebName();
  List<MyDTO> list = hitmap.get(webname);
  if (list==null){
    list = new ArrayList<MyDTO>();
    hitmap.put(webname, list);
  }
  list.add(dto);
}

Затем, если вы действительно просто хотите получить группу подсписков, просто получите ее из значений

List<List<MyDTO>> sublists = new ArrayList<List<MyDTO>>(hitmap.values());
0 голосов
/ 26 декабря 2011

Как насчет?

Для хранения списка DTO с таким же именем

Map<String, List<YourDTO> > mapNameToDtos

или даже лучше

для хранения только счетчика с тем же именем

Map<String, Integer > mapNameToCount
...