Java计算数组的所有值并将其存储在数组中
我想计算一个数组的值,并将其保存到一个数组中。在php中,我们使用array\u count\u值进行计算Java计算数组的所有值并将其存储在数组中,java,arrays,Java,Arrays,我想计算一个数组的值,并将其保存到一个数组中。在php中,我们使用array\u count\u值进行计算 $a=array("A","Cat","Dog","A","Dog"); print_r(array_count_values($a)); 输出: Array ( [A] => 2 [Cat] => 1 [Dog] => 2 ) 我想用java来做 Map<String, String[]> map = request.getPar
$a=array("A","Cat","Dog","A","Dog");
print_r(array_count_values($a));
输出:
Array ( [A] => 2 [Cat] => 1 [Dog] => 2 )
我想用java来做
Map<String, String[]> map = request.getParameterMap();
String[] wfBlockIds = map.get("wf_block_id[]");
Arrays.stream(wfBlockIds)
.collect(Collectors.groupingBy(s -> s))
.forEach((k, v) -> System.out.println(k+" => "+v.size() + " --" + v));
如何获得与数组中的数组\u count\u values()相等的结果。请尝试以下代码:
Map<String, Integer> map = new HashMap<>();
for (String s : array) {
if (map.containsKey(s)) {
Integer v = map.get(s);
map.put(s, v+1);
} else {
map.put(s, 1);
}
}
Map Map=newhashmap();
for(字符串s:数组){
若有(地图集装箱箱){
整数v=map.get(s);
地图放置(s,v+1);
}否则{
地图.put(s,1);;
}
}
请尝试以下代码:
Map<String, Integer> map = new HashMap<>();
for (String s : array) {
if (map.containsKey(s)) {
Integer v = map.get(s);
map.put(s, v+1);
} else {
map.put(s, 1);
}
}
Map Map=newhashmap();
for(字符串s:数组){
若有(地图集装箱箱){
整数v=map.get(s);
地图放置(s,v+1);
}否则{
地图.put(s,1);;
}
}
您的代码很好,但从请求参数获取的字符串数组包含3*“146944112699”和2*“14694411425”;
打印出您的request.getParameterMap(),您将看到您的代码很好,但是从request params获取的字符串数组包含3*“14694411299”和2*“14694411425”;
打印出您的request.getParameterMap(),您将看到尽管Java数组只有int索引,但您可以通过映射实现与PHP中相同的功能 下面的代码生成类似于
array\u count\u值的内容
Map<String, Long> result = Stream.of("A", "Cat", "Dog", "A", "Dog")
.collect(groupingBy(Function.identity(), counting()));
System.out.println(result); //prints {A=2, Cat=1, Dog=2}
Map result=Stream.of(“A”、“Cat”、“Dog”、“A”、“Dog”)
.collect(groupby(Function.identity(),counting());
系统输出打印项次(结果)//打印{A=2,Cat=1,Dog=2}
尽管Java数组只有int索引,但可以通过映射实现与PHP中相同的功能
下面的代码生成类似于array\u count\u值的内容
Map<String, Long> result = Stream.of("A", "Cat", "Dog", "A", "Dog")
.collect(groupingBy(Function.identity(), counting()));
System.out.println(result); //prints {A=2, Cat=1, Dog=2}
Map result=Stream.of(“A”、“Cat”、“Dog”、“A”、“Dog”)
.collect(groupby(Function.identity(),counting());
系统输出打印项次(结果)//打印{A=2,Cat=1,Dog=2}
您希望输出类型是什么?什么的数组?输出将是一个包含wfBlockIds数组元素的数组。数组([A]=>2[Cat]=>1[Dog]=>2)请更新您的问题,而不是将信息放在注释中。Java中的数组只能有int索引,因此您无法请求,也许映射适合您。您希望输出类型是什么?什么的数组?输出将是一个包含wfBlockIds数组元素的数组。数组([A]=>2[Cat]=>1[Dog]=>2)请更新您的问题,而不是将信息放在注释中。Java中的数组只能有int索引,因此您请求的内容不可能,也许映射对您有效。请尝试使用request.getParameter(“wf_block_id[]”而不调用parameterMap尝试在不调用parameterMap的情况下使用request.getParameter(“wf_block_id[])