Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用java 8对类型列表的hashmap值进行排序_Java_Arrays - Fatal编程技术网

使用java 8对类型列表的hashmap值进行排序

使用java 8对类型列表的hashmap值进行排序,java,arrays,Java,Arrays,我有一个字符串键的映射,值是字符串列表,我希望映射内的列表按字母顺序排序,如何使用Java8实现这一点 K1=[ "Tomato", "potato","Apple"], K2=["Plan", "car", "train"] 结果应该是 K1=[ "Apple" , "potato","Tomato"], K2=["car","Plan", "train"] 试试下面的功能 static void sort(Map<String, List<String>> s

我有一个字符串键的映射,值是字符串列表,我希望映射内的列表按字母顺序排序,如何使用Java8实现这一点

K1=[ "Tomato", "potato","Apple"], 
K2=["Plan", "car", "train"]
结果应该是

K1=[ "Apple" , "potato","Tomato"], 
K2=["car","Plan", "train"]
试试下面的功能

static void sort(Map<String, List<String>> stringListHashMap) {
        stringListHashMap.forEach((key, value) -> {
            Collections.sort(value);
        });
    }
静态无效排序(映射stringListHashMap){
stringListHashMap.forEach((键,值)->{
集合。排序(值);
});
}

插入地图时,对列表进行排序,或在检索后对列表进行排序。 请参阅以下代码以供参考:

        Map<String, List<String>> data= new HashMap<>();
        List<String> list1= Stream.of("AAA","CCC","BBB","DDD").sorted().collect(Collectors.toList());
        List<String> list2= Stream.of("CCC","DDD","BBB","AAA").sorted().collect(Collectors.toList());
        data.put("A",list1.stream().sorted().collect(Collectors.toList()));
        data.put("B", list2);
        System.out.println(data);
Map data=newhashmap();
List list1=流.of(“AAA”、“CCC”、“BBB”、“DDD”).sorted().collect(Collectors.toList());
List list2=流.of(“CCC”、“DDD”、“BBB”、“AAA”).sorted().collect(Collectors.toList());
data.put(“A”,list1.stream().sorted().collect(Collectors.toList());
数据。将(“B”,列表2);
系统输出打印项次(数据);
希望这将对您有所帮助。

Map yourMap=newhashmap();
Map<String, List<String>> yourMap= new HashMap<>();
 List list1 = Arrays.asList("Tomato", "potato","Apple");
 List list2 = Arrays.asList("Plan", "car", "train");
data.put("A",list1.sorted().collect(Collectors.toList()));
data.put("B", list2.sorted().collect(Collectors.toList()));

This will give you what you are looking for.
list1=Arrays.asList(“西红柿”、“土豆”、“苹果”); list2=数组。asList(“计划”、“汽车”、“火车”); data.put(“A”,list1.sorted().collect(Collectors.toList()); data.put(“B”,list2.sorted().collect(collector.toList()); 这会给你你想要的。
使用TreeSet作为映射的值元素,它根据提供的比较器对值进行排序

Comparator<? super String> comparator = String::compareToIgnoreCase;

Map<String, TreeSet<String>> map = new HashMap<>();

TreeSet<String> K1_values = new TreeSet<>(comparator);

K1_values.add("Tomato");
K1_values.add("potato");
K1_values.add("Apple");

map.put("K1", K1_values);

TreeSet<String> K2_values = new TreeSet<>(comparator);

K2_values.add("Plan");
K2_values.add("car");
K2_values.add("train");

map.put("K2", K2_values);

System.out.println(map);
按您需要的顺序排列项目


希望这有帮助

这是否回答了您的问题?
{K1=[Apple, potato, Tomato], K2=[car, Plan, train]}