有一个数组1,3,6,8,9,9,9,9,9,9,9,9,9,9,for循环这个数组给函数a发一个数,函数里如何把出现次数最多的数取出来,吧其他数据过滤掉,用java实现
时间: 2023-11-09 21:07:05 浏览: 24
可以使用Java中的for循环遍历数组,然后使用Java 8中的Stream API来统计数据出现的频率,并找到出现次数最多的数。具体实现如下:
```java
import java.util.Arrays;
import java.util.Map;
import java.util.stream.Collectors;
public class Main {
public static void main(String[] args) {
int[] data = {1, 3, 6, 8, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9};
for (int num : data) {
Map.Entry<Integer, Long> result = Arrays.stream(data)
.boxed()
.collect(Collectors.groupingBy(x -> x, Collectors.counting()))
.entrySet()
.stream()
.max(Map.Entry.comparingByValue())
.orElse(null);
if (result != null) {
System.out.println(result.getKey()); // 输出出现次数最多的数
}
}
}
}
```
这里使用for循环遍历数组,然后在循环中使用Java 8中的Stream API将数据转化为Map,并统计每个数值出现的次数。最后再使用max()方法和comparingByValue()方法找到出现次数最多的数,并输出。这样就可以实现每次循环都可以找到出现次数最多的数。