java - 使用键升序排序arraylist

标签 java sorting hashmap

map = new LinkedHashMap<String, String>(); 
list = new ArrayList<HashMap<String, String>>(); 

map.put("id", id);
map.put("amt", amt);

list.add(map);

如何按amt 的升序对列表进行排序。我无法做到这一点。 如果有任何帮助,我将不胜感激。

我正在循环中添加 idamt。如何使用 key as amt 进行排序?

id=1,2,3,4,5
amt=1000,33333,77,9087,5432

最佳答案

简单地使用 TreeMap:

Map<String, String> map = new TreeMap<String, String>();
List<Map<String, String>> list = new ArrayList<Map<String, String>>();

map.put("id", "id");
map.put("amd", "amd");

list.add(map);

System.out.println(list);

输出:

[{amd=amd, id=id}]

现在,如果 Id 是大写的而 amd 是小写的,那么您应该使用 覆盖 TreeMap 的默认行为>构造函数中的比较器(确保字符串键的排序正确):

Map<String, String> map = new TreeMap<String, String>(new Comparator<String>() {
        @Override
        public int compare(String o1, String o2) {
            return o1.toLowerCase().compareTo(o2.toLowerCase());
        }
    });

Look to the TreeMap API Documentation

关于java - 使用键升序排序arraylist,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19257365/

相关文章:

javascript - d3 包布局的地理排序功能

java - JDBC连接异常

java - 大约一半的用户在数据库更改后得到 `Bad Credentials`

c qsort 似乎删除了数组中的最后一个值

javascript - 临时变量未存储在 Javascript 中

java - 将 HashMap 从 Map<String, Boolean> 反转为 Map<Boolean, List<String>>

ruby-on-rails - 如何将多级数组中的唯一值映射到 value=>array 的散列?

Kotlin,是否可以访问这对 map ?

java - 连接java和sql。错误

Java 7 : output from encryption with public RSA key using cipher "RSA/ECB/OAEPWithSHA1AndMGF1Padding" does not match with openssl command