zoukankan      html  css  js  c++  java
  • 39-java中Arrays.sort 和 collections.sort()总结

    总结一下java 中的两种排序工具:

    Arrays.sort() : 主要针对 数组类型排序,如果数组里面的元素是对象,要按对象属性排序的话,需要重写 Comparator() 函数,重写里面的  int compare()函数;

    Collections.sort(): 主要是针对集合排序,如:list。 当然如果数组 array[i] 的每项是一个list 也可以直接用。与Arrays.sort()一样,重写 Comparator()函数。

    注意:两种方式重写的函数方式是一样的,单词不要写错哟: Comparator,compare

    
    
    import java.util.ArrayList;
    import java.util.Arrays;
    import java.util.Collections;
    import java.util.Comparator;
    import java.util.List;
    
    public class Main1 {
    	public static void main(String[] args) {
    		man[] mans = new man[3];
    		mans[0] = new man(1);
    		mans[1] = new man(24);
    		mans[2] = new man(5);
    
    		Comparator<man> cmp = new My_Comparator ();
    		//对象数组排序:
    		Arrays.sort(mans, cmp);
    		for(man i : mans) {
    			System.out.print(i.a + ", ");
    		}
    		System.out.println("---------");
    		
    		
    		//对象链表排序:
    		List<man> list = new ArrayList<>();
    		list.add(new man(3));
    		list.add(new man(2));
    		list.add(new man(1));
    //		Collections.sort(list, new Comparator<man>() {
    //			public int compare(man x, man y) {
    //				return y.a - x.a;
    //			}
    //		}); 
    		// 将上面的简化为下面的:
    		Collections.sort(list, cmp);
    		for(man i : list) {
    			System.out.print(i.a + "; ");
    		}
    	}
    }
    class My_Comparator  implements Comparator<man>{
    	@Override
    	public int compare(man o1, man o2) {
    		return o2.a - o1.a;
    	}
    }
    class man{
    	public int a;
    	man(int x){
    		this.a = x;
    	}
    }
    

      

  • 相关阅读:
    iOS 开发小记 (五)
    ReentrantLock API
    多线程之生产者消费者
    maven私服的项目使用配置
    maven仓库nexus安装配置
    thymeleaf自定义标签方言处理
    关于svn更新失败,clearup异常解决
    shiro+spring
    日常遇到的小问题
    springmvc控制器controller单例问题
  • 原文地址:https://www.cnblogs.com/zhumengdexiaobai/p/10459441.html
Copyright © 2011-2022 走看看