[Set]利用Set集合的不重複元素的特性來實現數組去重

例子:用面向對象的方法求出數組中重複 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

相關文章
相關標籤/搜索