java - 如何对 LinkedHashMap Arraylist<LinkedHashMap<String,String> 的 Arraylist 进行排序?

标签 java sorting collections hashmap linkedhashmap

如何对 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.sortLinkedHashMap 的特定值排序

<小时/>

但是,在您的情况下,您应该利用类优势。创建一个代表 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/

相关文章:

java - 对话框打开时如何处理屏幕方向变化?

java - Jnetpcap,准备UDP/TCP/IP/ICMP数据包

unix - 如何在不使用临时文件的情况下合并已排序的文件?

java - 我如何对我的数组列表进行排序?

java - 使用 Google Guava 过滤和转换集合

java - 返回 LinkedHashMap<K,V> 的方法的签名

c# - 在 Java 集合中搜索。为什么这么难?

java - JSONArray.add(new Long(value)) 和 (Long) JSONArray.get(index) 失败

unix - 我们如何使用 unix sort 更快地排序?

java - Firestore - 使用 CountDownLatch 等待任务完成 - 挂起应用程序