如何对 LinkedHashMap 的 Arraylist 进行排序
前任。
ArrayList<LinkedHashMap<String, String>> list = new ArrayList<LinkedHashMap<String, String>>();
LinkedHashMap<String, String> linkedHashMap = new LinkedHashMap<String, String>();
linkedHashMap.put("city", "AB");
linkedHashMap.put("name", "N");
linkedHashMap.put("area", "xyz");
list.add(linkedHashMap);
linkedHashMap = new LinkedHashMap<String, String>();
linkedHashMap.put("city", "BA");
linkedHashMap.put("name", "AB");
linkedHashMap.put("area", "xyz");
list.add(linkedHashMap);
linkedHashMap = new LinkedHashMap<String, String>();
linkedHashMap.put("city", "CH");
linkedHashMap.put("name", "AB");
linkedHashMap.put("area", "PQ");
list.add(linkedHashMap);
上面是我的 LinkedHashMap 的 ArrayList,我想以 Ref 作为键对值进行排序(例如按城市排序或按名称排序)
我已经使用 Collection.Sort 和相当的方法完成了 LinkedHashMap(Without Arraylist) 排序。
但是我如何对 LinkedHashMap 的 Arraylist 进行排序(使用循环或迭代器可能是可能的,但还有其他简单的方法吗?)
谢谢
最佳答案
您可以实现Comparator<T>
并使用Collections.sort
按 LinkedHashMap
的特定值排序
但是,在您的情况下,您应该利用类优势。创建一个代表 LinkedHashMap
中数据的类
public class MyClass {
private String city;
private String name;
private String area;
// implement some getters here.
}
然后,再次使用 Collections.sort
,并实现你想要的比较器
List<MyClass> myClasses = getMyClasses();
Collections.sort(myClasses, new Comparator<MyClass>(){
@Override
public int compare(MyClass o1, MyClass o2) {
// implement sorting behavior you want.
return 0;
}
});
关于java - 如何对 LinkedHashMap Arraylist<LinkedHashMap<String,String> 的 Arraylist 进行排序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9596306/