首页 > 代码库 > 数组转化成map和set的简单实现
数组转化成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; }
数组转化成map和set的简单实现
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。