Java. util. Arrays类:有一系列操作Array数组的static方法
Java.util. Collections类:有一系列操作集合的static方法
对Arrays数组排序方法:参见JDK API的Arrays类….
对List集合排序方法:
Collections类里的sort():
方法1:元素实现Comparable接口
Java本身的一些类如:String,Integer基本数据类型等,都实现了Comparable接口,直接可以对这些元素排序。(默认升序)
而用户自定义的类,如要对其排序,则需实现Comparabla接口,实现compareTo()方法。
class Song implements Comparable<Song> {
public String songName;
public int compareTo(Song o) {
return songName.compareTo(o.songName);
//这是比较投机取巧的方法,因为String有它的compareTo()方法,所以借用就好,如果想降序,可以*-1
}
}
public class testA {
public static void main(String[] args) {
ArrayList<Song> list = new ArrayList<Song>();
..添加数据..
Collections.sort(list);
..列出list..
}
}
某Song本身调用compareTo(Song o)方法,并与传入的Song参数进行比较,得出排序逻辑:
本身 > 参数 :返回正数 升序
本身 < 参数 :返回负数 降序
本身 = 参数 :返回0
方法2:自制Comparator类
方法1中的list的元素只能有一种比较方法,要想有多种不同的比较方法,可自制Comparator类。此方法不用实现Comparable接口
class Song{
public String songName;
}
class SongNameCompare implements Comparator<Song> {
public int compare(Song o1, Song o2) {
return o1.songName.compareTo(o2.songName);
}
}
public class testA {
public static void main(String[] args) {
ArrayList<Song> list = new ArrayList<Song>();
..添加数据..
Collections.sort(list, new SongNameCompare());
..列出list..
}
}