數組轉化成map和set的簡單實現


將數組轉化為Set(不使用Set類)。

思路:1.將數組排序

     2.遍歷數組,將臨近的元素進行比較,如果不相等就加入容器。 (當然這里返回的是一個有序無重的容器沒有實現無序)

 

    /**
     * 將數組去重(不使用Set的情況下)
     * @param array  被操作數組
     * @return 目標Set
     */
    public static List<Integer> intToSet(int[] array){
        List<Integer> list = new ArrayList<Integer>();
        Arrays.sort(array);
        list.add(array[0]);
        for(int i = 0;i<array.length-1;i++){
            if(array[i]!=array[i+1]){
                list.add(array[i+1]);
            }
        }
    
        return list;
    }

 

將數組轉化為Map(key為元素,value為次數)。

因為上面實現了set,我們這里就直接用Set容器。

思路:

1.將數組裝入Set,去重。

2.遍歷Set,將里面的元素取出計算出出現的次數。

 

    /**
     * 數組 轉成 map形式
     * @param array 被操作數組
     * @return 目標Map
     */
    public static Map<Integer,Integer> intToMap(int[] array){
        Set<Integer> set = new HashSet<Integer>();
        Map<Integer,Integer> map = new HashMap<Integer,Integer>();
        for(int i = 0;i<array.length;i++){
            set.add(array[i]);
        }
        Iterator<Integer> it = set.iterator();
        while(it.hasNext()){
            int next = it.next();
            int index = 0;
            for(int n : array){
                if(n==next) index++;
            }
            map.put(next, index);
            System.out.print(next);
            System.out.println("======"+index);
        }
                
        return map;
    }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM