【发布时间】:2014-09-05 12:52:56
【问题描述】:
我看到了这个帖子 sorting a List of Map<String, String>,我知道我的帖子听起来可能是重复的,但略有不同。
我的例子是:
List<Map<String, String>> myList = new ArrayList<Map<String, String>>();
...
for(MyClass1 c1 : c1)
{
...
for(MyClass2 c2 : c12)
{
SimpleBindings myBindindings= new SimpleBindings();
myBindindings.put(c1.getName(), c2.getName());
myList.add(myBindindings);
}
}
...
具体来说我可以拥有
{
(John, Mike)
(John, Jack)
(Sam, Jack)
(Gloria, Anna)
(Jane, Carla)
...
}
并且希望我的列表按 maps 键排序:
{
(Gloria, Anna)
(Jane, Carla)
(John, Mike)
(John, Jack)
(Sam, Jack)
...
}
【问题讨论】:
-
有什么不同?您是否尝试像建议的答案那样编写比较器?你尝试了什么?
-
你到底在排序什么?你有一个
List(一个集合)Map(另一个集合)。您如何确定一个Map是否大于另一个?此外,您要添加SimpleBindings而不是Map- 如果此类extends Map考虑不这样做,最好避免在 Java 集合框架中扩展项目。 -
所以你的
Maps 每个只有 1 个键值对?为什么不直接使用TreeMap<String, String>呢? -
@Mena 这也是我的怀疑 - 如果是这种情况,那么
Map完全是错误的结构,因为显然不需要查找。TreeSet的一些自定义对象可能是最好的。 -
为什么
(John, Mike)在(John, Jack)之前?
标签: java sorting collections