Map接口实现了Collection接口,该接口提供了Map数据结构的功能。 映射不包含任何重复的键,并且每个键都与一个值相关联。 我们可以使用与它们关联的键来访问和修改值。
在以下两个示例中,我们可以借助lambda表达式按键和值对Map进行排序。
import java.util.*; import java.util.stream.*; public class MapSortUsingKeyTest { public static void main(String args[]) { // 根据键对映射进行排序 Map<Integer, String> map = new HashMap<Integer, String>(); map.put(2, "India"); map.put(5, "Australia"); map.put(3, "England"); map.put(1, "Newzealand"); map.put(4, "Scotland"); Map<Integer, String> sortedMap = map.entrySet().stream() .sorted(Map.Entry.comparingByKey()) .collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue, (e1, e2) -> e2, LinkedHashMap::new)); System.out.println("Sorted Map: " + Arrays.toString(sortedMap.entrySet().toArray())); } }
输出结果
Sorted Map: [1=Newzealand, 2=India, 3=England, 4=Scotland, 5=Australia]
import java.util.*; import java.util.stream.*; public class MapSortUsingValueTest { public static void main(String args[]) { //根据它们的值对映射进行排序 Map<Integer, String> map = new HashMap<Integer, String>(); map.put(1, "Jaidev"); map.put(2, "Adithya"); map.put(3, "Vamsi"); map.put(4, "Krishna"); map.put(5, "Chaitanya"); Map<Integer, String> sortedMap = map.entrySet().stream() .sorted(Map.Entry.comparingByValue()) .collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue, (e1, e2) -> e2, LinkedHashMap::new)); System.out.println("Sorted Map: " + Arrays.toString(sortedMap.entrySet().toArray())); } }
输出结果
Sorted Map: [2=Adithya, 5=Chaitanya, 1=Jaidev, 4=Krishna, 3=Vamsi]
问题内容: 我有一个同时包含键和值的字符串的Map。 数据如下: 我想根据其键对地图进行排序。因此,最后,我将拥有..依此类推。 最终,我试图从该Map中获取两个字符串。 第一个字符串:问题(顺序为1 ..10) 第二个字符串:答案(与问题的顺序相同) 现在,我有以下内容: 这使我的问题成串出现,但顺序不正确。 问题答案: 简短答案 使用。这正是它的目的。 如果将此地图传递给你,并且你无法确定类型
问题内容: 这是一个非常基本的问题,我对Java并不是很好。我有一个Map,我想按排序顺序获取列表或某些键,以便可以对其进行迭代。 问题答案: 使用,这是接口的实现。它按排序顺序显示其密钥。 如果您使用的另一个Map实现没有按照您的喜好进行排序,则可以将其传递给的构造函数,以使用排序键创建新的Map。 一个与实现接口的任何类型的键一起使用的键,将它们按“自然”顺序放置。对于不需要的键或不需要的自然
问题内容: 我是Java 8的新手,不确定如何使用流及其排序方法。如果我的地图如下,如何使用Java 8按值对地图进行排序以仅获取前10个条目。 我知道在Java 8之前,我们可以按以下链接进行排序:http://codingdict.com/questions/116310 问题答案: 您可以随时开始阅读文档和一些 教程。 参考 http://www.leveluplunch.com/java/
考虑下面的哈希图: 具有诸如 我需要按值对hashmap进行降序排序,但如果值相等,则按键进行升序排序: 到目前为止,我试着分别按键排序,然后按值排序,但我不相信这种方法。除了创建更多的hashmaps之外,还有什么好方法呢?
我想按值长度对Map进行排序。例如,我有这样的代码: 结果是: 所以我想做的是按值长度对这个Map进行排序,所以它返回:
问题内容: 有人可以给我看一个简单的示例,如何使用新的lambda语法在Java 8中按字母顺序排序。 问题答案: 对于字符串,这将工作