zoukankan      html  css  js  c++  java
  • 数组转化成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;
        }
  • 相关阅读:
    软件项目管理总体流程设计
    Delphi 编译时 提示 Internal error: URW3537 错误
    Oracle OLEDB 的手工分发
    Oracle10g Client的手工分发
    Delphi 处理在字符串截取中避免出现半个汉字
    Oracle ODP.Net 的手工分发
    项目中问题解决杂谈audio
    按钮 stylesheet 字符串;
    pb使用
    web测试和app测试的重点
  • 原文地址:https://www.cnblogs.com/xiaoweihua/p/7029206.html
Copyright © 2011-2022 走看看