Java 迭代映射列表以仅写入其内容
每个参与者都在相互投票一些数值,我想用代理的名字写下这些信息 根据以下代码Java 迭代映射列表以仅写入其内容,java,loops,dictionary,set,Java,Loops,Dictionary,Set,每个参与者都在相互投票一些数值,我想用代理的名字写下这些信息 根据以下代码 cj.makingDefault().stream() .forEach(a->out.print(a.entrySet())); 我打印了一张地图清单 [ari=[0.03, 0.03, 0.03, 0.03, 0.03, 0.03, 0.03], hyo=[0.31, 0.31, 0.317, 0.31..., ji=[...], yoo=[...], mi=[...]..] 如何仅打印代
cj.makingDefault().stream()
.forEach(a->out.print(a.entrySet()));
我打印了一张地图清单
[ari=[0.03, 0.03, 0.03, 0.03, 0.03, 0.03, 0.03],
hyo=[0.31, 0.31, 0.317, 0.31..., ji=[...], yoo=[...], mi=[...]..]
如何仅打印代理的数字值,并用换行符分隔
期望的结果是
0.3, 0.3, 0.3, ...0.3
0.31, 0.31, 0.31, ...0.31,
...
如果有7名参与者,7乘7矩阵
提前感谢您的帮助~
(编辑)
作为一个临时解决方案,我修改了“cj.makingDefault()”函数,只返回映射并更改了代码
cj.makingDefault().entrySet()
.stream().forEach(a->out.print(a.getValue()+"\n"));
我得到了
[0.0056009042654552865, 0.0056009042654552865, 0.0056009042654552865, 0.0056009042654552865, 0.0056009042654552865, 0.0056009042654552865, 0.0056009042654552865]
[0.31583809304895144, 0.31583809304895144, 0.31583809304895144, 0.31583809304895144, 0.31583809304895144, 0.31583809304895144, 0.31583809304895144]
[0.9924090841607273, 0.9924090841607273, 0.9924090841607273, 0.9924090841607273, 0.9924090841607273, 0.9924090841607273, 0.9924090841607273]
[0.8093898651356558, 0.8093898651356558, 0.8093898651356558, 0.8093898651356558, 0.8093898651356558, 0.8093898651356558, 0.8093898651356558]
[0.015200181208559038, 0.015200181208559038, 0.015200181208559038, 0.015200181208559038, 0.015200181208559038, 0.015200181208559038, 0.015200181208559038]
[0.03947825506938696, 0.03947825506938696, 0.03947825506938696, 0.03947825506938696, 0.03947825506938696, 0.03947825506938696, 0.03947825506938696]
[0.39173806385104337, 0.39173806385104337, 0.39173806385104337, 0.39173806385104337, 0.39173806385104337, 0.39173806385104337, 0.39173806385104337]
那我怎么才能消除这个…的苏卡雷制动器呢。。?这将是完美的。您看到的是默认的
toString
集合实现,它将包括方括号
您必须自己打印列表中的元素
cj.makingDefault().stream()
.forEach(a -> print(a.values()));
private void print(Collection<Double> values) {
System.out.println(values.stream()
.map(String::valueOf)
.collect(Collectors.joining(",")));
}
cj.makingDefault().stream()
.forEach(a->print(a.values());
私有作废打印(集合值){
System.out.println(values.stream()
.map(字符串::valueOf)
.collect(收集器。连接(“,”);
}
您看到的是包含方括号的集合的默认toString
实现
您必须自己打印列表中的元素
cj.makingDefault().stream()
.forEach(a -> print(a.values()));
private void print(Collection<Double> values) {
System.out.println(values.stream()
.map(String::valueOf)
.collect(Collectors.joining(",")));
}
cj.makingDefault().stream()
.forEach(a->print(a.values());
私有作废打印(集合值){
System.out.println(values.stream()
.map(字符串::valueOf)
.collect(收集器。连接(“,”);
}
必须首先迭代映射值(即列表),然后迭代这些列表中的项目,以覆盖标准toString输出
Map<String, List<Double>> map = ...
String result = map.values().stream()
.map(s -> s.stream()
.map(String::valueOf)
.collect(Collectors.joining(", ")))
.collect(Collectors.joining("\n"));
Map=。。。
字符串结果=map.values().stream()
.map(s->s.stream()
.map(字符串::valueOf)
.collect(收集器.连接(“,”))
.collect(收集器.加入(“\n”));
必须首先迭代映射值(即列表),然后迭代这些列表中的项目,以覆盖标准toString输出
Map<String, List<Double>> map = ...
String result = map.values().stream()
.map(s -> s.stream()
.map(String::valueOf)
.collect(Collectors.joining(", ")))
.collect(Collectors.joining("\n"));
Map=。。。
字符串结果=map.values().stream()
.map(s->s.stream()
.map(字符串::valueOf)
.collect(收集器.连接(“,”))
.collect(收集器.加入(“\n”));
请问cj.makingDefault()的类型是什么?它返回列表……请尝试a.values()
。它返回一个可以打印为的集合desired@user7,我使用getValue仅提取数字。。但是仍然有一个问题..你能分享更多的输入和输出作为例子吗?例如,查看ji、yoo、mi的值将去向何处。每个映射都只有一个条目?请输入什么类型的cj.makingDefault()
它返回列表……请尝试a.values()
。它返回一个可以打印为的集合desired@user7,我使用getValue仅提取数字。。但是仍然有一个问题..你能分享更多的输入和输出作为例子吗?例如,查看ji、yoo、mi的值将去向何处。每个地图只有一个条目吗?