Возникла проблема, когда базовая реализация .equals()
рассматривает 2 Map
s как одно и то же из-за их пар «ключ-значение», а не из-за их ref.Хотя я знаю, что это правильная процедура, я все же хотел бы добавить их к другому ArrayList
в соответствии с уникальной ссылкой.
String[] sortedStringOfDatesFromTempMaps = new String[dates.length];
List<Map<String, String>> tempTradeMap;
for (int i = 0; i < sortedStringOfDatesFromTempMaps.length; i++) {
String[] stringSplitArr = new String[2];
stringSplitArr = sortedStringOfDatesFromTempMaps[i].split("=");
for (int j = 0; j < tempTradeMap.size(); j++) {
if (tempTradeMap.get(j).containsValue(stringSplitArr[0])
&& tempTradeMap.get(j).containsValue(stringSplitArr[1])){
if(!sortedMapList.contains(tempTradeMap.get(j))){
sortedMapList.add(tempTradeMap.get(j));
}
break;
}
}
}
Проблема, с которой я столкнулся, заключается в том, что sortedMapList
должен иметь тот же номерэлементов, которые передаются, в первую очередь.Тем не менее, так как параметр «содержит» относится к ним одинаково, они добавляют только один.Таким образом, если имеется 5 элементов с 2 дублирующимися парами, окончательный список будет содержать только 3 элемента.