我有个SortedMap
具有相似的项目:比较器的比较()函数从地图删除重复
- 1 = ABC
- 2 = XYZ
- 3 = ABC
值可以重复。
我想按排序的方式在屏幕上显示值集。即
myListMap
- ABC
- ABC
- XYZ
要,我使用comparator
排序Map
:
public class SortMapByValueComparator implements Comparator<String> {
Map<String, String> mInputMap;
/**
* Constructor.
*
* @param inputMap
*/
public SortMapByValueComparator(Map<String, String> inputMap) {
mInputMap = inputMap;
}
@Override
public int compare(String lhs, String rhs) {
String string1 = mInputMap.get(lhs);
String string2 = mInputMap.get(rhs);
return string1.compareToIgnoreCase(string2);
}
}
然后通过映射到此比较像:
SortMapByValueComparator sortMapByValueComparator = new SortMapByValueComparator(myListMap);
SortedMap<String, String> sortedMapByValue = new TreeMap<String, String>(sortMapByValueComparator);
sortedMapByValue.putAll(myListMap);
现在的问题是,当我打电话SortMapByValueComparator
,它会删除重复值。我怎样才能避免它?
PS - 我只想使用Map。
“值可以重复。”和 “我想按排序的方式显示屏幕上的值集”是矛盾的陈述。 – TheLostMind
@TheLostMind对于相同的值,我不关心哪个abc首先到达,只要两个都显示 – reiley