首页 > 其他 > 详细

list map 相关笔记(1)

时间:2019-10-25 11:27:24      阅读:93      评论:0      收藏:0      [点我收藏+]

排序:

Collections.sort(list, new Comparator<User>() {
            @Override
            public int compare(User u1, User u2) {
                int d= u1.getAge() - u2.getAge();
                if (d> 0) {
                    return 1;
                } else if (d< 0) {
                    return -1;
                } else {
                    return 0;// 相等为0
                }
            }
}); // 按年龄排序
/*Map<String,String> map = new HashMap<String,String>();
        map.put("999", "哈密瓜");
        map.put("4", "菠萝");
        map.put("2", "草莓");
        map.put("3", "香蕉");
        map.put("111", "榴莲");
        System.out.println(map);*/
        
        Map<Integer,String> map = new HashMap<Integer,String>();
        map.put(99, "哈密瓜");
        map.put(4, "菠萝");
        map.put(2, "草莓");
        map.put(3, "香蕉");
        map.put(11, "榴莲");
        System.out.println(map);
        
        Map<Integer,String> map1 = new LinkedHashMap<Integer,String>();
        map1.put(99, "哈密瓜");
        map1.put(4, "菠萝");
        map1.put(2, "草莓");
        map1.put(3, "香蕉");
        map1.put(11, "榴莲");
        System.out.println(map1);
        
        Map<Integer,String> map2 = new TreeMap<Integer,String>();
        map2.put(99, "哈密瓜");
        map2.put(4, "菠萝");
        map2.put(2, "草莓");
        map2.put(3, "香蕉");
        map2.put(11, "榴莲");
        System.out.println(map2);
        
        //遍历
        for (Map.Entry<Integer, String> entry : map.entrySet()) {
            System.out.println("key = " + entry.getKey() + ", value = " + entry.getValue());
        }
        System.out.println("*-----------------------");
        for (Integer key : map.keySet()) {
            System.out.println("key = " + key+ ", value = " +map.get(key));
        }
        System.out.println("-----------------------");
        Iterator<Map.Entry<Integer, String>> it = map.entrySet().iterator();
        while (it.hasNext()) {
            Map.Entry<Integer, String> entry = it.next();
            System.out.println("key = " + entry.getKey() + ", value = " + entry.getValue());
        }
        System.out.println("*-----------------------");
        map.forEach((key, value) -> {
            System.out.println(key + ":" + value);
        });
        System.out.println("-----------------------");
        
        List<Integer> list= new ArrayList<Integer>();
        list.add(99);
        list.add(96);
        list.add(95);
        list.add(98);
        /*Collections.sort(list,new Comparator<Integer>(){  
            public int compare(Integer arg0, Integer arg1) {  
                return arg0-arg1;  
            }  
        });  */
        Collections.sort(list, (item1, item2) -> item1 - item2);
        for(Integer u : list){  
            System.out.println(u);  
        } 
        //冒泡
        /*int k[] = {3,4,5,1,0,2};
        for(int i=0;i<k.length-1;i++){
            for(int j=i+1;j<k.length;j++){
                if(k[i]>k[j]){
                    int temp = k[i];
                    k[i]=k[j];
                    k[j]=temp;
                }
            }
        }
        for(int i=0;i<k.length;i++){
            System.out.println(k[i]);
        }*/
        System.out.println("-------------------------");
        //sort
        int k2[] = {3,4,5,1,0,2};
        Arrays.sort(k2);
        for(int n=0;n<k2.length;n++){
            System.out.println(k2[n]);
        }
        System.out.println("-------------------------");
        //选择排序 xxxxx
        /*int min=0;
        int temp=0;
        int k3[] = {3,4,5,3,2,1,0,2};    
        for(int i=0;i<k3.length-1;i++){
            min = i;
            for(int j=i+1;j<k3.length;j++){
                if(k3[min]>k3[j]){
                    min=j;
                }
                if(min!=i){
                    temp = k3[i];
                    k3[i]=k3[min];
                    k3[min]=temp;
                }
            }
        }*/
        int [] arr= {56,62,47,21,27,76,11,39,77,19,23};
        int k=0;
        int temp=0;
        for(int i=0;i<arr.length-1;i++) {
             k=i;
             for(int j=i+1;j<arr.length;j++) {
                if(arr[k]>arr[j]) {
                    k=j;
                }
             }
             if(k!=i) {
                //交换位置
                temp=arr[i];
                arr[i]=arr[k];
                arr[k]=temp;
             }
          }
          System.out.println("排序后:"+Arrays.toString(arr));
         //选择排序
        System.out.println("-------------------------");
        
        int k4[] = {3,4,5,3,2,1,0,2};        
        for(int i=1;i<k4.length;i++){   
            for(int j=i;j>0;j--) {   
                if (k4[j]<k4[j-1]){   
                    temp=k4[j-1];  
                    k4[j-1]=k4[j];  
                    k4[j]=temp;          
                }else break;   
            }  
        }
        for(int i=0;i<k4.length;i++)
        {
            System.out.println(k4[i]);
        }  //插入排序
        System.out.println("-------------------------");
        //倒序排序
        Collections.reverse(list);
        System.out.println(list);
        
        //数组倒序排序
        Integer[] a = { 9, 6, 7, 2, 3, 4, 0, 1, 8, 5 };
        Comparator<Integer> cmp = new MyComparator();
        Arrays.sort(a, cmp);
        System.out.println("排序后:"+Arrays.toString(a));
        
        System.out.println("-------------------------");
        Integer[] A={10,23,42,12,20,6};
        Arrays.sort(A,Collections.reverseOrder());
        for(int c : A){
           System.out.println(c);
        }
        
        
        //map排序
        Map<String, String> map6 = new TreeMap<String, String>();
        map6.put("d", "ddddd");
        map6.put("b", "bbbbb");
        map6.put("a", "aaaaa");
        map6.put("c", "ccccc");
        
        //这里将map.entrySet()转换成list
        List<Map.Entry<String,String>> listm = new ArrayList<Map.Entry<String,String>>(map6.entrySet());
        //然后通过比较器来实现排序
        Collections.sort(listm,new Comparator<Map.Entry<String,String>>() {
            //升序排序
            @Override
            public int compare(Entry<String, String> o1,Entry<String, String> o2) {
                return o1.getValue().compareTo(o2.getValue());
            }
        });
        
        for(Map.Entry<String,String> mapping:listm){ 
               System.out.println(mapping.getKey()+":"+mapping.getValue()); 
          } 

 

分组:

List<myDTO> strings = new ArrayList<myDTO>();
myDTO m=new myDTO();
m=new myDTO();m.setName("果粒橙");m.setValue(1);m.setId(1L);;strings.add(m);
m=new myDTO();m.setName("果粒橙");m.setValue(2);m.setId(2L);strings.add(m);
m=new myDTO();m.setName("拼多多");m.setValue(1);m.setId(1L);strings.add(m);
m=new myDTO();m.setName("拼多多");m.setValue(1);m.setId(2L);strings.add(m);
m=new myDTO();m.setName("果粒橙");m.setValue(4);m.setId(1L);strings.add(m);
m=new myDTO();m.setName("拼多多");m.setValue(1);m.setId(2L);strings.add(m);
m=new myDTO();m.setName("果粒橙");m.setValue(5);m.setId(1L);strings.add(m);
m=new myDTO();m.setName("菠萝蜜");m.setId(1L);strings.add(m);
        
/*Map<String, List<myDTO>> result = strings.stream() 
          .collect(Collectors.groupingBy(myDTO::getNameId)); 组合key (需要在BEAN 里写get方法)*/
/*Map<String, Map<Long,List<myDTO>>> result = strings.stream() 
                  .collect(Collectors.groupingBy(myDTO::getName,Collectors.groupingBy(myDTO::getId))); 嵌套*/
/*Map<String, Long> result = strings.stream() 
                  .collect(Collectors.groupingBy(myDTO::getName,Collectors.counting())); */
/*Map<String, Long> result = strings.stream() 
                  .collect(Collectors.groupingBy(myDTO::getNameId,Collectors.counting())); */

list 去重

// 过滤去重
List<Integer> orgIds = new ArrayList<Integer>();
orgIds.add(1);
orgIds.add(11);
orgIds.add(12);
orgIds.add(1);
List<Integer> newOrgIds =orgIds .stream().distinct().collect(Collectors.toList());
System.out.println(newOrgIds);
List<myDTO> orgIds2 = new ArrayList<myDTO>();
myDTO dto= new myDTO();
dto.setId(1L);dto.setName("果粒橙");orgIds2.add(dto);
dto= new myDTO();
dto.setId(2L);dto.setName("拼多多");orgIds2.add(dto);
dto= new myDTO();
dto.setId(1L);dto.setName("果粒橙2");orgIds2.add(dto);
dto= new myDTO();
dto.setId(1L);dto.setName("果粒橙");orgIds2.add(dto);
List<myDTO> newOrgIds2 =orgIds2 .stream().distinct().collect(Collectors.toList());
System.out.println(newOrgIds2);
[1, 11, 12]
[myDTO [name=果粒橙, id=1, value=0.0], myDTO [name=拼多多, id=2, value=0.0], myDTO [name=果粒橙2, id=1, value=0.0]]

 

list map 相关笔记(1)

原文:https://www.cnblogs.com/DarGi2019/p/11583624.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!