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;
    	}
    }
    

      

  • 相关阅读:
    多线程学习笔记第一篇
    当Visual Studio中win32控制台应用程序的注释也会生产代码时……
    博客行文及排版技法
    Debian Linux下的Python学习——安装python,vim
    onhashchange事件
    MyEclipse9 Maven开发Web工程 详细配置
    Java面向对象(上)
    lucene 的分析器(analyzer)与分词器(tokenizer)和过滤器(tokenfilter)
    java编程陷阱
    solr中文分词(mmseg4j)
  • 原文地址:https://www.cnblogs.com/zhumengdexiaobai/p/10459441.html
Copyright © 2011-2022 走看看