用面向对象的方法求出数组中重复 value 的个数。
int[] arr = {1,8,2,2,8,8,3,2,2,3};
按如下个数,格式输出:
1 出现:1 次
3 出现:2 次
8 出现:3 次
2 出现:4 次
import java.util.TreeMap;
public class Main {
public static void main(String[] args) {
int[] arr = { 1, 8, 2, 2, 8, 9, 8, 0, 6, 8, 7, 4, 5, 8, 3, 2, 2, 3 };
calculate(arr);
}
public static void calculate(int[] arr) {
TreeMap<Integer, Integer> map = new TreeMap<Integer, Integer>();
for (int i = 0; i < arr.length; i++) {
if (map.containsKey(arr[i])) {
map.put(arr[i], map.get(arr[i]) + 1);
} else {
map.put(arr[i], 1);
}
}
System.out.println("统计后,输出前:");
System.out.println(map);
int n = map.size();
for (int i = 0; i < n; i++) {
System.out.println(map.firstKey() + "出现:" + map.get(map.firstKey()) + "次");
map.remove(map.firstKey());
}
System.out.println("输出后(由于map不能根据index下标索引来获取元素,只能一个一个获取第
一个键值对,然后删除来实现,所以最终为空的):");
System.out.println(map);
}
}
运行结果如下所示: