zoukankan      html  css  js  c++  java
  • Java list集合排序

    1.简单类型:

    Collections.sort(list, new Comparator<String>(){
        public int compare(int o1, int o2) {
            return o1 - o2;
        }
    });
    
    Collections.sort(list, new Comparator<String>(){
        public int compare(String o1, String o2) {
            return o1.length() - o2.length();
        }
    });
    

    2.复杂类型(对象):

    Collections.sort(list, new Comparator<Emp >(){
        public int compare(Emp o1, Emp o2) {
            return o1.getSalary() - o2.getSalary();
        }
    });
    

    3.举个栗子:(根据学生成绩等级排序,A、B、C、D,把等级转换成字符的ASCII值进行排序)

    public static void main(String[] args) {
    	List<Sutdent> list = new ArrayList<>();
    	Sutdent sutdent1 = new Sutdent();
    	sutdent1.setGrade("B");
    	list.add(sutdent1);
    	Sutdent sutdent2 = new Sutdent();
    	sutdent2.setGrade("A");
    	list.add(sutdent2);
    	
    	for (Sutdent sutdent : list) {
    		System.out.println("排序前:" + sutdent.getGrade());
    	}
    	
            // list排序
    	Collections.sort(list, new Comparator<Sutdent>() {
    		@Override
    		public int compare(Sutdent s1, Sutdent s2) {
    			String grade1 = s1.getGrade();
    			String grade2 = s2.getGrade();
    			int num1 = 0;
    			int num2 = 0;
    			if (StringUtils.isNotBlank(grade1) && StringUtils.isNotBlank(grade2)) { // 判空
    				char[] chars1 = grade1.toCharArray();
    				for (char c : chars1) {
    					num1 += (int)c;
    				}
    				char[] chars2 = grade2.toCharArray();
    				for (char c : chars2) {
    					num2 += (int)c;
    				}
    				System.out.println("num1:" + num1);
    				System.out.println("num2:" + num2);
    				return num1 - num2;
    			} else {
    				return 0;
    			}
    		}
    	});
    	
    	for (Sutdent sutdent : list) {
    		System.out.println("排序后:" + sutdent.getGrade());
    	}
    }
    

  • 相关阅读:
    字符串匹配之朴素匹配
    XSS的攻击原理
    使用metasploit收集邮箱
    C++实现折半插入排序
    C++插入排序实现
    Java中的NIO
    Hashtable和HashMap区别(面试)
    面向对象:封装(一):构造函数;类的主方法;权限修饰符;对象的创建
    switch多分支语句
    递归和字母数字生成随机数
  • 原文地址:https://www.cnblogs.com/congyiblog/p/14103740.html
Copyright © 2011-2022 走看看