Collections類是java提供的一個(gè)集合操作工具類,它包含了大量的靜態(tài)方法童番,用于實(shí)現(xiàn)對(duì)集合元素的排序精钮、查找和替換等操作。
Collections與Collection是不同的剃斧,前者是集合的操作類轨香,后者是集合的接口。
排序
在Java中幼东,如果想實(shí)現(xiàn)一個(gè)類的對(duì)象之間比較大小臂容,那么這個(gè)類就要實(shí)現(xiàn)Comparable接口。此接口強(qiáng)行對(duì)實(shí)現(xiàn)它的每個(gè)類的對(duì)象進(jìn)行整體排序筋粗。這種排序被稱為類的自然排序策橘,類的compareTo()方法被稱為它的自然比較方法。此方法用于比較此對(duì)象與指定對(duì)象的順序娜亿,如果該對(duì)象小于丽已、等于或大于指定對(duì)象,則分別返回負(fù)整數(shù)买决、零或正整數(shù)沛婴。
compareTo()方法的定義語(yǔ)法格式如下:
int compareTo(Object obj);
實(shí)現(xiàn)此接口的對(duì)象列表(和數(shù)組),元素之間可以比較大小后吼畏,就可以通過(guò)Collections.sort()方法(和Array.sort()方法)進(jìn)行排序操作了。前面介紹過(guò)List接口和Map接口嘁灯,Map接口本身是無(wú)序的泻蚊,所以不能對(duì)Map接口做排序操作:但是List接口時(shí)有序的,所以可以對(duì)List接口進(jìn)行排序丑婿。注意List接口中存放的元素性雄,必須是實(shí)現(xiàn)了Comparable接口的元素才可以。
示例:
public class Student implements Comparable{
private int num;
private String name;
public int getNum() {
return num;
}
public void setNum(int num) {
this.num = num;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int compareTo(Object o) {
Student stu = (Student)o;
if (this.num == stu.getNum()) {
return 0;
} else if (this.num > stu.getNum()) {
return 1;
} else {
return -1;
}
}
}
替換
若有一個(gè)需求羹奉,需要把List集合中的所有元素都替換為相同的元素秒旋,則可以使用Collections類的靜態(tài)方法fill()來(lái)實(shí)現(xiàn)。