java list 字典顺序排序

package com.datayes.ecoinfo;  
  
import java.text.Collator;  
import java.util.ArrayList;  
import java.util.Collections;  
import java.util.Comparator;  
import java.util.List;  
  
public class Test {  
    public static void main(String[] args) {  
        List<String> list = new ArrayList<String>();  
        list.add("随便填");  
        list.add("比如说");  
        list.add("博客");  
        Collections.sort(list, new Comparator<String>() {  
            @Override  
            public int compare(String o1, String o2) {  
                Comparator<Object> com = Collator.getInstance(java.util.Locale.CHINA);  
                return com.compare(o1, o2);  
  
            }  
        });  
  
        for (String temp : list) {  
            System.out.println(temp);  
        }  
    }  
}
自带的包含汉字太少    推荐
import com.ibm.icu.text.Collator; 

maven   pom

        <dependency>  
            <groupId>com.ibm.icu</groupId>  
            <artifactId>icu4j</artifactId>  
            <version>57.1</version>  
        </dependency>



  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Java 中的 Map 是一种存储键值对的数据结构。要对 Map 中的值进行排序,可以使用 Java 中的 Comparator 接口。 例如,假设有一个 Map 变量 `myMap`,要按照值从大到小的顺序对它进行排序,可以使用以下代码: ``` List<Map.Entry<String, Integer>> list = new ArrayList<>(myMap.entrySet()); Collections.sort(list, new Comparator<Map.Entry<String, Integer>>() { @Override public int compare(Map.Entry<String, Integer> o1, Map.Entry<String, Integer> o2) { return o2.getValue().compareTo(o1.getValue()); } }); ``` 这段代码首先将 Map 的条目(即键值对)转存到一个 List 中,然后使用 `Collections.sort` 对这个 List 进行排序。在这里,我们使用了一个 Comparator 来定义排序规则,比较两个条目的值(`o1.getValue()` 和 `o2.getValue()`)。 排序后的结果可以使用以下代码来遍历: ``` for (Map.Entry<String, Integer> entry : list) { System.out.println(entry.getKey() + ": " + entry.getValue()); } ``` 希望这些信息能帮到你。 ### 回答2: 在Java中,可以使用TreeMap对Map的值进行排序。TreeMap是一个基于红黑树的有序映射,它会将键值对按照键的自然顺序进行排序。 首先,你需要创建一个TreeMap对象,并将原来的Map对象中的键值对依次放入到TreeMap中。代码如下: ```java // 创建一个TreeMap对象,用于排序 TreeMap<String, Integer> sortedMap = new TreeMap<>(); // 将原来的Map对象中的键值对放入到TreeMap中 sortedMap.putAll(yourMap); ``` 现在,你可以根据键或者值对TreeMap进行排序。如果你想按照键的升序排序,可以直接使用sortedMap。如果你想按照值的升序排序,可以使用Collections工具类的sortByValue方法。示例如下: 按照键的升序排序: ```java for (Map.Entry<String, Integer> entry : sortedMap.entrySet()) { System.out.println(entry.getKey() + ": " + entry.getValue()); } ``` 按照值的升序排序: ```java // 创建一个List对象,用于存放Map的键值对 List<Map.Entry<String, Integer>> sortedList = new ArrayList<>(sortedMap.entrySet()); // 使用Collections工具类的sortByValue方法进行排序 Collections.sort(sortedList, Map.Entry.comparingByValue()); // 遍历排序后的List,打印值排序后的键值对 for (Map.Entry<String, Integer> entry : sortedList) { System.out.println(entry.getKey() + ": " + entry.getValue()); } ``` 上述代码可以按照值的升序排序,并打印排序后的键值对。如果你想按照值的降序排序,可以在sortByValue方法后面加上Collections.reverseOrder()。例如: ```java Collections.sort(sortedList, Map.Entry.comparingByValue(Collections.reverseOrder())); ``` 这样就可以按照值的降序排序,并打印排序后的键值对了。 ### 回答3: 在Java中,可以通过使用`java.util.TreeMap`或`java.util.LinkedHashMap`来对`Map`中的值进行排序。 使用`TreeMap`可以将Map按照键的自然顺序进行排序。以下是一个示例: ```java import java.util.Map; import java.util.TreeMap; public class Main { public static void main(String[] args) { Map<String, Integer> map = new TreeMap<>(); map.put("a", 3); map.put("c", 1); map.put("b", 2); System.out.println("排序前的Map:" + map); Map<String, Integer> sortedMap = new TreeMap<>(map); System.out.println("排序后的Map:" + sortedMap); } } ``` 输出结果为: ``` 排序前的Map:{a=3, b=2, c=1} 排序后的Map:{a=3, b=2, c=1} ``` 除了`TreeMap`外,还可以使用`LinkedHashMap`来排序Map中的值。不同的是,`LinkedHashMap`会按照元素插入的顺序进行排序。以下是一个示例: ```java import java.util.LinkedHashMap; import java.util.Map; public class Main { public static void main(String[] args) { Map<String, Integer> map = new LinkedHashMap<>(); map.put("a", 3); map.put("c", 1); map.put("b", 2); System.out.println("排序前的Map:" + map); Map<String, Integer> sortedMap = new LinkedHashMap<>(); map.entrySet().stream() .sorted(Map.Entry.comparingByValue()) .forEachOrdered(x -> sortedMap.put(x.getKey(), x.getValue())); System.out.println("排序后的Map:" + sortedMap); } } ``` 输出结果为: ``` 排序前的Map:{a=3, c=1, b=2} 排序后的Map:{c=1, b=2, a=3} ``` 以上就是对`java.util.Map`中的值进行排序的方法。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值