Как удалить дубликаты ключей в LinkedHashMap - PullRequest
0 голосов
/ 06 октября 2019

У меня проблема с дублирующимися ключами в connectedhashmap, насколько я знаю, что связанныеhashmaps не позволяют дублировать ключи, я в основном использую код для группировки данных из API на основе даты (поэтому каждая дата является ключевой), это код, который я использую

  private LinkedHashMap<String, List<Model>> groupDataIntoHashMaps(List<Model> mylist) {


        LinkedHashMap<String, List<Model>> groupedHashMap = new  LinkedHashMap<>();

        for (Model mymodel : mylist) {
            String hashMapKey = mymodel.getDate();

            if (groupedHashMap.containsKey(hashMapKey)) {

            } else {

                List<Model> list = new ArrayList<>();
                list.add(mymodel);
                groupedHashMap.put(hashMapKey, list);
            }
            groupedHashMap.keySet().clear();
        }
        return groupedHashMap;
} 

, здесь я выполняю возвращаемый тип моего метода выше

modelList.add(new 

  Model(eventid,date,hometeam,awayteam,homelogo,awaylogo,homescore,awayscore,stadium,"Details",mytime));

 LinkedHashMap<String, List<Model>> groupedHashMap = groupDataIntoHashMaps(modelList);

 Log.d("TODO","MYGROUP" + groupedHashMap);/// in logcat , it shows duplicate keys

 for (String dates : groupedHashMap.keySet()) {

  Log.d("TODO","KEYS" + groupedHashMap.keySet());

  MyDateItem dateItem = new MyDateItem();

  dateItem.setDate(dates);

  consolidatedList.add(dateItem);

  for (Model mymodel : groupedHashMap.get(dates)) {

  MyGeneralItem generalItem = new MyGeneralItem();

 generalItem.setModel(mymodel);

 consolidatedList.add(generalItem);

   }

  ssadapter = new Ssadapter(consolidatedList, getContext());
  recyclerView.setAdapter(ssadapter);

после проверки отладчиком, я обнаружил, чтоgrouphashmap является причиной дублирования ключей. Любая помощь будет оценена, ребята, спасибо.

PS: Вот источник кода, который я использую для группировки данных

https://krtkush.com/2016/07/08/android-recyclerview-grouping-data.html

1 Ответ

0 голосов
/ 06 октября 2019

Во-первых, LinkedHashMap не содержит дубликатов ключей, если есть дубликаты ключей, его следует заменить на новое значение.

https://www.geeksforgeeks.org/linkedhashmap-class-java-examples/

Если вы все ещеиметь их и хотел удалить, преобразовать их в другую карту, а затем попытаться удалить их.

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