我如何排序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作为键对值进行排序(如按城市排序或按名称排序)
我已经完成了LinkedHashMap(Without Arraylist)通过使用Collection.Sort和可比。但是我怎样才能对我的LinkedHashMap数组列表进行排序(可能使用循环或迭代器,但是还有其他简单的方法吗?)
谢谢

最佳答案

您可以实现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/

10-15 11:42