java中的排序sort()函数的使用

(一)Arrays类此类包含用来操作数组(比如排序和搜索)的各种方法,包括对各种数据类型数组的排序。 static int (int[] a, int key) : 使用二分搜索法来搜索指定的 int 型数组,以获得指定的值。 static void ([] a, int fromIndex, int toIndex) :根据元素的对指定对象数组的指定范围按升序进行排序。 static void (int[] a) :对指定的 int 型数组按数字升序进行排序。 static void (int[] a, int fromIndex, int toIndex) : 对指定 int 型数组的指定范围按数字升序进行排序。 其中:自然排序: public interface Comparable<T> 此接口强行对实现它的每个类的对象进行整体排序。这种排序被称为类的自然排序,类的 compareTo 方法被称为它的自然比较方法。 实现此接口的对象列表(和数组)可以通过 (和)进行自动排序。 实现此接口的对象可以用作中的键或中的元素,无需指定。 (二)Collections类的方法 static <T extends Comparable< super T>> void (<T> list) : 根据元素的自然顺序 对指定列表按升序进行排序。 static void (<T> list,<? super T> c) : 根据指定比较器产生的顺序对指定列表进行排序。 (三) java对于集合排序的方法:通过实现Comparable接口 需要重写 public int compareTo(T t) { return 0} 方法 Comparable接口只能用一种方式比较。 实例: import java.util.Arrays; import java.util.Collections; import java.util.LinkedList; public class Animals implements Comparable<Animals> { private String name; public int age; @Override public int compareTo(Animals o) { if (this.age > o.age) return -1; if (this.age < o.age) return 1; else return 0; }

/*

对于类的使用方式: 对于类的使用方式:

public int compareTo(User arg0) { return this.getOrder().compareTo(arg0.getOrder()); }

*/ public Animals(String name, int age) { this.name = name; this.age = age; } public static void main(String[] args) { LinkedList<Animals> list = new LinkedList<Animals>(); list.add(new Animals("a", 2)); list.add(new Animals("b", 4)); list.add(new Animals("c", 6)); Collections.sort(list);// 需重写compareTo()方法 for (Animals animals : list) { System.out.println("Animals name=" + animals.name + " age=" + animals.age); } } } (四)通过实现Comparator接口,重写compare()方法,通过构建不同的比较器类,并在sort()方法里面传入不同的比较器类对象,就能实现对象的不同属性比较。 static void (<T> list, <? super T> c) : 根据指定比较器产生的顺序对指定列表进行排序。 //比较器类,实现compare(T t1,T t2)方法 如果要按照升序排序, 则t1 小于t2,返回-1(负数),相等返回0,t1大于t2返回1(正数) 如果要按照降序排序 则t1 小于t2,返回1(正数),相等返回0,t1大于t2返回-1(负数)

经验分享 程序员 微信小程序 职场和发展