zoukankan      html  css  js  c++  java
  • Java中List的排序和List的MAp

    这里是一个类中类去实现条件优先排序的问题

    package com.sun;
    
    import java.util.ArrayList;
    import java.util.Arrays;
    import java.util.Collections;
    import java.util.Comparator;
    import java.util.List;
    
    public class Demo {
    
    	public Demo() {
    		// TODO Auto-generated constructor stub
    	}
    
    	/**
    	 * @param args
    	 */
    	public static void main(String[] args) {
    		// TODO Auto-generated method stub
    
    		int a= 0;
    		Dob db  = new Dob();
    		Dob db1  = new Dob();
    		Dob db2  = new Dob();
    		db.setName("sun");
    		db.setAge(20);
    		db.setSex(3);
    		
    		db1.setName("zhi");
    		db1.setAge(22);
    		db1.setSex(1);
    		
    		db2.setName("yan");
    		db2.setAge(21);
    		db2.setSex(2);
    		List<Dob> as = new ArrayList<Dob>();
    		System.out.println("as="+as.size());
    		as.add(db);
    		as.add(db1);
    		as.add(db2);
    		
    		 Collections.sort(as, new Comparator<Dob>() {
    //比较。如果年龄不同先比较年龄 ,相同就比较性别
    	            public int compare(Dob arg0, Dob arg1) {
    	            	int flg = arg0.getAge().compareTo(arg1.getAge());
    	            	if(flg==0){
    	            		 return arg0.getSex().compareTo(arg1.getSex());
    	            	}else{
    	            		 return arg0.getAge().compareTo(arg1.getAge());
    	            	}
    	               
    	            }
    
    	        });
    		
    		
    		for (Dob p : as) {
                System.out.println(p.getName());
                System.out.println(p.getAge());
            }
    		
    System.out.println("as="+as.size());
    
    	}
    
    
    }
    	class Dob {
    		public String  name;
    
    		public Integer age;
    
    		public Integer sex;
    
    
    
    		public String getName() {
    			return name;
    		}
    		public void setName(String name) {
    			this.name = name;
    		}
    		public Integer getAge() {
    			return age;
    		}
    		public void setAge(Integer age) {
    			this.age = age;
    		}
    		public Integer getSex() {
    			return sex;
    		}
    		public void setSex(Integer sex) {
    			this.sex = sex;
    		}
    
    }
    

      LIst中的MAp

     public void listSort(List<Map<String,Object>> resultList) throws Exception{
            // resultList是需要排序的list,其内放的是Map
            // 返回的结果集
            Collections.sort(resultList,new Comparator<Map<String,Object>>() {
    
             public int compare(Map<String, Object> o1,Map<String, Object> o2) {
    
              //o1,o2是list中的Map,可以在其内取得值,按其排序,此例为升序,s1和s2是排序字段值
                 //String FileNumber = GetFileKeyNumber(fileInfo.getKey(),2,2);
    
                 Map.Entry<String, Object>  fileInfo1 = null;
                 Map.Entry<String, Object>  fileInfo2 = null;
                 Integer s1 = 0;
                 Integer s2 = 0;
                 Iterator<Map.Entry<String, Object>> fileMap = o1.entrySet().iterator();
                 while (fileMap.hasNext()) {
                   fileInfo1 = fileMap.next();
                   s1 = Integer.parseInt(GetFileKeyNumber(fileInfo1.getValue().toString(),2,2));
                 }
    
                 Iterator<Map.Entry<String, Object>> fileMap2 = o2.entrySet().iterator();
                 while (fileMap2.hasNext()) {
                   fileInfo2 = fileMap2.next();
                   s2 = Integer.parseInt(GetFileKeyNumber(fileInfo2.getValue().toString(),2,2));
                 }
    
              if(s1>s2) {
               return 1;
              }else {
               return -1;
              }
             }
            });
    
           }
    

      

  • 相关阅读:
    Codeforces Round #551 (Div. 2) F. Serval and Bonus Problem (DP/FFT)
    Codeforces Round #551 (Div. 2) E. Serval and Snake (交互题)
    BZOJ 5495: [2019省队联测]异或粽子 (trie树)
    洛谷【P2669】NOIP2015普及组 T1金币
    解决Win 10上SSD缓慢问题
    如何保障数据安全
    一个网工的linux学习过程
    JS实现select去除option的使用注意事项
    codevs1506传话(kosaraju算法)
    我的园子
  • 原文地址:https://www.cnblogs.com/sunxun/p/4464226.html
Copyright © 2011-2022 走看看