Java 仅显示列表中的地图键<;地图<;字符串,列表<;字符串>&燃气轮机&燃气轮机;
我的结构如下:Java 仅显示列表中的地图键<;地图<;字符串,列表<;字符串>&燃气轮机&燃气轮机;,java,arrays,list,hashmap,key-value,Java,Arrays,List,Hashmap,Key Value,我的结构如下: List<Map<String, List<String>>> filters 我只想显示map键,而不是值 预期产出: product 我尝试了以下方法: String op = filters.get(i).keySet().toString(); 这为我提供了以下输出: [product] 我也尝试过使用.stream(),但没有成功。我只想显示按键(一个或多个),即在本例中:product 任何帮助都将不胜感激。这应该可以解决问
List<Map<String, List<String>>> filters
我只想显示map键,而不是值
预期产出:
product
我尝试了以下方法:
String op = filters.get(i).keySet().toString();
这为我提供了以下输出:
[product]
我也尝试过使用.stream(),但没有成功。我只想显示按键(一个或多个),即在本例中:product
任何帮助都将不胜感激。这应该可以解决问题
List<String> collect = filters.stream()
.flatMap(entry ->
entry.keySet().stream())
.collect(Collectors.toList());
List collect=filters.stream()
.flatMap(条目->
entry.keySet().stream())
.collect(Collectors.toList());
collect将拥有地图的所有键。您可以使用:
filters.stream().flatMap(c -> c.keySet().stream())
.forEach(System.out::println);
编辑:
我想将接收到的输出示例:(product)传递给另一个示例 功能。每个部分都会这样做吗?我不想 在那里打印 否在这种情况下,您可以在列表中收集结果,然后返回结果,例如:
public List<String> myFunction(List<Map<String, List<String>>> filters){
return filters.stream()
.flatMap(c -> c.keySet().stream())
.collect(Collectors.toList());
}
公共列表myFunction(列表过滤器){
返回filters.stream()
.flatMap(c->c.keySet().stream())
.collect(Collectors.toList());
}
然后你可以这样消费它:
List<String> result = myFunction(filters);
result.forEach(System.out::println);
List result=myFunction(过滤器);
result.forEach(System.out::println);
我想将接收到的输出示例:(product)传递给另一个函数。每个部分都会这样做吗?我不想在那里打印。谢谢你的帮助。@TeeJay no收集所有结果并返回我编辑我的答案检查ITI如果输入是[{a:[1],b:[2]},{a:[3],c:[4]}]
应该输出什么<代码>[[a,b],[a,c]或[a,b,a,c]
或[a,b,c]
?
List<String> result = myFunction(filters);
result.forEach(System.out::println);