例子:用面向對象的方法求出數組中重複 value 的個數,按以下個數輸出:
1 出現:1 次
3 出現:2 次
8 出現:3 次
2 出現:4 次
int[] arr = {1,4,1,4,2,5,4,5,8,7,8,77,88,5,4,9,6,2,4,1,5};java
代碼:數組
package cn.zz.shop.util; import java.util.HashSet; import java.util.Map; import java.util.Set; import java.util.TreeMap; /** * @author he * @date 2018/9/13 */ public class MySet { public static void main(String[] args) { MySet set = new MySet(); int[] arr = {1, 4, 1, 4, 2, 5, 4, 5, 8, 7, 8, 77, 88, 5, 4, 9, 6, 2, 4, 1, 5}; Map<Integer, Integer> countSameEle = set.countSameEle(arr); System.out.println(countSameEle); } /** * 返回一個數組中不一樣元素出現的次數 * * @param arr 數組 * @return 返回不一樣元素出現的次數的map */ public Map<Integer, Integer> countSameEle(int[] arr) { Map<Integer, Integer> map = new TreeMap<>(); Set set = new HashSet(); // 遍歷數組,將數組放進一個set集合中,若放不進去,則次數+1 for (int i = 0; i < arr.length; i++) { boolean hasAdd = set.add(arr[i]); if (!hasAdd) { Integer temp = map.get(arr[i]); map.put(arr[i], temp + 1); } else { map.put(arr[i], 1); } } return map; } }
結果:對象
{1=3, 2=2, 4=5, 5=4, 6=1, 7=1, 8=2, 9=1, 77=1, 88=1}get