将地图的条目分组到列表中
Group Entries of a map into list
假设我有一个包含一些条目的 HashMap:
Map hm= new HashMap();
hm.put(1,"ss");
hm.put(2,"ss");
hm.put(3,"bb");
hm.put(4,"cc");
hm.put(5,"ss");
我想要这样的输出:
[{1,ss},{2,ss},{5,ss}]
可能吗?
当然是:
List<Map.Entry<Integer,String>> list =
hm.entrySet().stream().collect(Collectors.toList());
您应该将 Map
的定义更改为:
Map<Integer,String> hm = new HashMap<>();
P.S。您没有指定是想要输出 List
中的所有条目,还是只需要其中的一部分。在示例输出中,您仅包含具有“ss”值的条目。这可以通过添加过滤器来实现:
List<Map.Entry<Integer,String>> list =
hm.entrySet().stream().filter(e -> e.getValue().equals("ss")).collect(Collectors.toList());
System.out.println (list);
输出:
[1=ss, 2=ss, 5=ss]
编辑:您可以按如下所需格式打印 List
:
System.out.println (list.stream ().map(e -> "{" + e.getKey() + "," + e.getValue() + "}").collect (Collectors.joining (",", "[", "]")));
输出:
[{1,ss},{2,ss},{5,ss}]
首先,你像这样声明你的 HashMap:
HashMap<Integer, String> hm = new HashMap<>();
然后在输入键和值之后,您可以像这样打印整个 HashMap:
System.out.println("Mappings of HashMap hm1 are : " + hm);
如果要打印键等于 1 的值,则:
if (hm.containsKey(1)) {
String s = hm.get(1);
System.out.println("value for key 1 is: " + s);
}
假设我有一个包含一些条目的 HashMap:
Map hm= new HashMap();
hm.put(1,"ss");
hm.put(2,"ss");
hm.put(3,"bb");
hm.put(4,"cc");
hm.put(5,"ss");
我想要这样的输出:
[{1,ss},{2,ss},{5,ss}]
可能吗?
当然是:
List<Map.Entry<Integer,String>> list =
hm.entrySet().stream().collect(Collectors.toList());
您应该将 Map
的定义更改为:
Map<Integer,String> hm = new HashMap<>();
P.S。您没有指定是想要输出 List
中的所有条目,还是只需要其中的一部分。在示例输出中,您仅包含具有“ss”值的条目。这可以通过添加过滤器来实现:
List<Map.Entry<Integer,String>> list =
hm.entrySet().stream().filter(e -> e.getValue().equals("ss")).collect(Collectors.toList());
System.out.println (list);
输出:
[1=ss, 2=ss, 5=ss]
编辑:您可以按如下所需格式打印 List
:
System.out.println (list.stream ().map(e -> "{" + e.getKey() + "," + e.getValue() + "}").collect (Collectors.joining (",", "[", "]")));
输出:
[{1,ss},{2,ss},{5,ss}]
首先,你像这样声明你的 HashMap:
HashMap<Integer, String> hm = new HashMap<>();
然后在输入键和值之后,您可以像这样打印整个 HashMap:
System.out.println("Mappings of HashMap hm1 are : " + hm);
如果要打印键等于 1 的值,则:
if (hm.containsKey(1)) {
String s = hm.get(1);
System.out.println("value for key 1 is: " + s);
}