1. 程式人生 > >數組轉化成map和set的簡單實現

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

ash ram nbsp hashmap tom put 排序 index tor

將數組轉化為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; }

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