數組轉化成map和set的簡單實現
阿新 • • 發佈:2017-06-16
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的簡單實現