java的collections的sort的API

这里是有关JAVA的collections的sort 的有关知识

一:

	import java.util.ArrayList;
	import java.util.Collections;
	import java.util.List;

	public class SortListDSemo2 {
		public static void main(String[] args) {

	    List<Point> list=new ArrayList<Point>();
	    	list.add(new Point(4,5));
	    	list.add(new Point(2,4));
	    	list.add(new Point(4,6));
	    	list.add(new Point(9,6));
	    	System.out.println(list);
	    	/*
	    	 * collections 的Sor方法要求排序的集合元素必须实现Comparable接口
	    	 * 该接口用于表示可比较 其提供了一个抽象方法comparaTo用于定义比较规则。
	    	 *
	    	 */
	    	Collections.sort(list);
	    	System.out.println(list);
		}

	}

二:

import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;

/**
 * collections的sort方法有两个不足:
 * 1:要求我们的集合元素必须实现comparable接口
 *	这样就对我们的类有较强的“侵入性”;
 * 2:有时集合元素实现了comparale接口并定义了比较大小的规则
 * 但是该规则不满组我们对排序的需求
 * collections提供了一个重载的sort方法:
 * static void sort(list list,comparable c)
 * 该重载方法要求我们传入一个额外的比较器
 * 按照比较器的规则来比较集合中的元素进行自然排序
 * @author soft01
 *
 */
public class Demo1 {
public static void main(String[] args) {
List<String> list=new ArrayList<String>();
list.add("小明语句16时19分05秒");
list.add("黎明");
list.add("窗前没有光");
System.out.println(list);
   MyComparator com=new MyComparator();
   Collections.sort(list,com);
   System.out.println(list);

}
}
class MyComparator implements Comparator<String>{

@Override
public int compare(String o1, String o2) {
return o1.length()-o2.length();
}

}
时间: 2024-10-11 18:39:53

java的collections的sort的API的相关文章

【Java】Collections中sort方法Comparator的重写

很多人只会用Collections中不带比较器Comparator的sort方法完成一些对存储整形Integer的动态数组ArrayList的简单排序,包括我之前,此前仅仅在<[Java]Java中的Collections类--Java中升级版的数据结构>(点击打开链接)介绍Collections中sort方法的简单用法. igz 面对eclipse所给出的说明,根本就不知道这个sort方法如何重写,如果我对一个存储Student类的动态数组进行以学生的学号为根据,姓名为根据进行排序,那该如何

java中Collections.sort排序详解

Comparator是个接口,可重写compare()及equals()这两个方法,用于比价功能:如果是null的话,就是使用元素的默认顺序,如a,b,c,d,e,f,g,就是a,b,c,d,e,f,g这样,当然数字也是这样的.compare(a,b)方法:根据第一个参数小于.等于或大于第二个参数分别返回负整数.零或正整数.equals(obj)方法:仅当指定的对象也是一个 Comparator,并且强行实施与此 Comparator 相同的排序时才返回 true. Collections.so

Java中Collections类的排序sort函数两种用法 (转http://viver120.blog.163.com/blog/static/60072482013010111228695/)

java中的Colletions类主要实现列表List的排序功能.根据函数参数的传递,具体的排序可以分为 : 1.  自然排序(natural ordering). 函数原型:sort(List<T> list)说明:参数是要参与排序列表的List对象                                                               实例说明:参与排序的列表的元素Student必须实现Comparable接口的public int compareTo(

[转]java中Collections.sort排序详解

Comparator是个接口,可重写compare()及equals()这两个方法,用于比价功能:如果是null的话,就是使用元素的默认顺序,如a,b,c,d,e,f,g,就是a,b,c,d,e,f,g这样,当然数字也是这样的. compare(a,b)方法:根据第一个参数小于.等于或大于第二个参数分别返回负整数.零或正整数. equals(obj)方法:仅当指定的对象也是一个 Comparator,并且强行实施与此 Comparator 相同的排序时才返回 true. Collections.

Java中Collections.sort()排序详解

第一种:Comparable 排序接口 若一个类实现了Comparable接口,就意味着"该类支持排序". 假设"有一个List列表(或数组),里面的元素是实现了Comparable接口的类",则该List列表(或数组)可以通过 Collections.sort(或 Arrays.sort)进行排序. 此外,"实现Comparable接口的类的对象"可以用作"有序映射(如TreeMap)"中的键或"有序集合(Tree

Java中Collections.sort()的用法

Java中Collections.sort()的使用: 在日常开发中,很多时候都需要对一些数据进行排序的操作.然而那些数据一般都是放在一个集合中如:Map ,Set ,List 等集合中.他们都提共了一个排序方法 sort(),要对数据排序直接使用这个方法就行,但是要保证集合中的对象是可比较的. 怎么让一个对象是 可比较的,那就需要该对象实现 Comparable<T> 接口啦.然后重写里面的compareTo()方法.我们可以看到Java中很多类都是实现类这个接口的 如:Integer,Lo

要点Java20 java.util.Collections

java.util.Collections 集合帮助类 演示样例程序(JUnit演示) 排序 @Test public void testSort() { List<Integer> demoList = new ArrayList<Integer>(Arrays.asList(3, 2, 1)); assertEquals(3, demoList.get(0).intValue()); //public static <T extends Comparable<? s

java 18-11 Collections用于ArrayList集合中

Collections可以针对ArrayList存储基本包装类的元素排序,存储自定义对象可不可以排序呢? 自定义对象要自己写比较器进行排序 1 package cn.itcast_02; 2 3 import java.util.ArrayList; 4 import java.util.Collections; 5 import java.util.Comparator; 6 import java.util.List; 7 public class CollectionsDemo { 8 p

Collections中sort()方法源代码的简单分析

Collections的sort方法代码: public static <T> void sort(List<T> list, Comparator<? super T> c) { Object[] a = list.toArray(); Arrays.sort(a, (Comparator)c); ListIterator i = list.listIterator(); for (int j=0; j<a.length; j++) { i.next(); i.