更新時間:2019-09-03 16:22:10 來源:動力節點 瀏覽2998次
今天動力節點java培訓機構小編為你分享“Java集合中Collections工具類都有哪些呢”,希望通過此文能夠幫助到java零基礎學員,下面就隨小編一起看看Java集合中Collections工具類都有哪些?
Collections工具類
Collections 是一個操作 Collection(Set、 List )和 Map 等集合的工具類
Collection和Collections的區別?
Collection是用來存儲單列數據的集合接口,常用子接口有List和Set
Collections是操作Collection的工具類。
常用方法
排序操作:
reverse(List): 反轉 List 中元素的順序
shuffle(List): 對 List 集合元素進行隨機排序
sort(List): 根據元素的自然順序對指定 List 集合元素按升序排序
sort(List, Comparator): 根據指定的 Comparator 產生的順序對 List 集合元素進行排序
swap(List, int, int): 將指定 list 集合中的 i 處元素和 j 處元素進行交換
查找和替換:
Object max(Collection): 根據元素的自然順序,返回給定集合中的最大元素
Object max(Collection, Comparator): 根據 Comparator 指定的順序,返回給定集合中的最大元素
Object min(Collection)
Object min(Collection, Comparator)
int frequency(Collection, Object): 返回指定集合中指定元素的出現次數
void copy(List dest,List src):將src中的內容復制到dest中
boolean replaceAll(List list, Object oldVal, Object newVal): 使用新值替換List 對象的所有舊值
舉例:
reverse反轉方法
@Test
public void test3() {
// 測試reverse方法
List list = new ArrayList();
list.add(2121);
list.add(-1);
list.add(21);
list.add(0);
list.add(45);
//反轉
Collections.reverse(list);
System.out.println(list);//[45, 0, 21, -1, 2121]
}
sort方法
@Test
public void test2() {
// 測試sort方法
List list = new ArrayList();
list.add(2121);
list.add(-1);
list.add(21);
list.add(0);
list.add(45);
//按升序排序
Collections.sort(list);
System.out.println(list);//[-1, 0, 21, 45, 2121]
}
逆序排序
int compareTo(T t)方法說明
定義:比較此對象與指定對象的順序
返回:負整數、零或正整數。如果該對象小于、等于或大于指定對象,則分別返回負整數、零或正整數。
@Test
public void test1() {
// 測試sort方法
List list = new ArrayList();
list.add(2121);
list.add(-1);
list.add(21);
list.add(0);
list.add(45);
// 降序
Collections.sort(list, new Comparator
@Override
public int compare(Integer o1, Integer o2) {
System.out.println(o2 - o1);
return o2 - o1; // 此時o2-o1是大于0的
}
});
System.out.println(list);//[-1, 0, 21, 45, 2121]
}
對自定義對象的排序
方法一:通過實現Comprable的compareTo方法進行排序
// 實現Comparable接口
class User implements Comparable
private String name;
private Integer age;
public User(String name, Integer age) {
this.name = name;
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
@Override
public int compareTo(User o) {
//首先比較年齡,如果年齡相同,則比較名字
int flag = this.getAge().compareTo(o.getAge());
if (flag == 0) {
return this.getName().compareTo(o.getName());
} else {
return flag;
}
}
@Override
public String toString() {
return "User{" +
"name='" + name + '\'' +
", age=" + age +
'}';
}
測試方法
// 自定義對象的排序,比如對User對象按照年齡排序,再按照name排序
@Test
public void testSort() {
User f1 = new User("tony", 19);
User f2 = new User("jack", 16);
User f3 = new User("tom", 80);
User f4 = new User("jbson", 44);
User f5 = new User("jason", 44);
User f6 = new User("tom", 12);
List
list.add(f1);
list.add(f3);
list.add(f4);
list.add(f2);
list.add(f5);
list.add(f6);
Collections.sort(list);
for (User o : list) {
System.out.println(o.getAge() + "-->" + o.getName());
}
}
輸出:
12-->tom
16-->jack
19-->tony
44-->jason
44-->jbson
80-->tom
copy方法
List dest = Arrays.asList(new Object[list.size()]);
@Test
public void testCopy(){
List list = new ArrayList();
list.add(2121);
list.add(-1);
list.add(21);
list.add(0);
list.add(45);
//錯誤寫法:此時dest集合為長度為0,報錯IndexOutOfBoundsException: Source does not fit in dest
// List dest = new ArrayList();
// Collections.copy(dest,list);
// System.out.println(dest.size());
// System.out.println(dest);
// 正確寫法:先造一個值為null,長度為list長度的集合。再拷貝
List dest = Arrays.asList(new Object[list.size()]);
System.out.println(dest.size()); // 5
Collections.copy(dest,list);
System.out.println(dest);
}
以上就是動力節點java培訓機構小編介紹的“Java集合中Collections工具類都有哪些”的內容,希望能夠幫助到大家,更多精彩內容請繼續關注動力節點java培訓機構官網,每天會有精彩內容分享與你。
相關免費視頻教程推薦
javase—— Collection集合視頻教程下載:http://www.dabaquan.cn/xiazai/2510.html
0基礎 0學費 15天面授
有基礎 直達就業
業余時間 高薪轉行
工作1~3年,加薪神器
工作3~5年,晉升架構
提交申請后,顧問老師會電話與您溝通安排學習