Collections集合工具類的方法
addAll與shuffle
import java.util.ArrayList;
import java.util.Collections;
/*
- java.util.Collections是集合工具類,用來對集合進行操作。部分方法如下:
- public static <T> boolean addAll(Collection<T> c,T...elements):往集合中添加一些元素
- public static void shuffle(List<?> list) 打亂順序:打亂集合順序
*/
public class Demo01Collections {
public static void main(String[] args) {
ArrayList<String> list = new ArrayList<>();
//往集合中添加多個元素
/*list.add("a");
list.add("b");
list.add("c");
list.add("d");
list.add("e");*/
//public static <T> boolean addAll(Collection<T> c,T...elements):往集合中添加一些元素
Collections.addAll(list,"a","b","c","d","e");
System.out.println(list);//[a, b, c, d, e]
//public static void shuffle(List<?> list) 打亂順序:打亂集合順序
Collections.shuffle(list);
System.out.println(list);
}
}
sort方法的使用1(Comparable)
import java.util.ArrayList;
import java.util.Collections;
/*
- java.utils.Collections是集合工具類,用來對集合進行操作。部分方法如下
public static <T> void sort(List<T> list):将集合中元素按照預設規則排序
注意:
sort(List<T> list)使用前提
被排序的集合裡邊存儲的元素,必須實作Comparable,重寫接口中的方法compareTo,定義排序的規則
Comparable接口的排序規則:
自己(this) - 參數:升序
*/
public class Demo02Sort {
public static void main(String[] args) {
ArrayList<Integer> list01 = new ArrayList<>();
list01.add(1);
list01.add(3);
list01.add(2);
System.out.println(list01);//[1, 3, 2]
//static <T> void sort(List<T> list):将集合中元素按照預設規則排序
Collections.sort(list01);//預設是升序
System.out.println(list01);//[1, 2, 3]
ArrayList<String> list02 = new ArrayList<>();
list02.add("a");
list02.add("c");
list02.add("b");
System.out.println(list02);//[a, c, b]
Collections.sort(list02);
System.out.println(list02);//[a, b, c]
ArrayList<Person> list03 = new ArrayList<>();
list03.add(new Person("張三",18));
list03.add(new Person("李四",20));
list03.add(new Person("王五",15));
System.out.println(list03);//[Person{name='張三', age=18}, Person{name='李四', age=20}, Person{name='王五', age=15}]
Collections.sort(list03);
System.out.println(list03);
}
}
=============================================================================
public class Person implements Comparable<Person>{
private String name;
private int age;
public Person() {
}
public Person(String name, int age) {
this.name = name;
this.age = age;
}
@Override
public String toString() {
return "Person{" +
"name='" + name + '\'' +
", age=" + age +
'}';
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
//重寫排序的規則
@Override
public int compareTo(Person o) {
//return 0;//認為元素都是相同的
//自定義比較的規則,比較兩個人的年齡(this,參數Person)
//return this.getAge() - o.getAge();//年齡升序排序
return o.getAge() - this.getAge();//年齡降序排序
}
}
sort方法的使用2(Comparator)
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
/*
- java.utils.Collections是集合工具類,用來對集合進行操作。部分方法如下
public static <T> void sort(List<T> list):将集合中元素按照預設規則排序
Comparator和Comparable差別:
Comparable:自己(this)和别人(參數)比較,自己需要實作Comparable接口,重寫比較的規則compareTo方法
Comparator:相當于找一個第三方的裁判,比較兩個
Comparator的排序規則:
o1 - o2:升序
*/
public class Demo03Sort {
public static void main(String[] args) {
ArrayList<Integer> list01 = new ArrayList<>();
list01.add(1);
list01.add(3);
list01.add(2);
System.out.println(list01);//[1, 3, 2]
Collections.sort(list01, new Comparator<Integer>() {
//重寫比較的規則
@Override
public int compare(Integer o1, Integer o2) {
//return o1 - o2;//升序
return o2 - o1;//降序
}
});
System.out.println(list01);
ArrayList<Student> list02 = new ArrayList<>();
list02.add(new Student("a迪麗熱巴",18));
list02.add(new Student("古力娜紮",20));
list02.add(new Student("楊幂",17));
list02.add(new Student("b楊幂",18));
System.out.println(list02);
/*Collections.sort(list02, new Comparator<Student>() {
@Override
public int compare(Student o1, Student o2) {
//按照年齡升序排序
return o1.getAge() - o2.getAge();
}
});*/
Collections.sort(list02, new Comparator<Student>() {
@Override
public int compare(Student o1, Student o2) {
//按照年齡升序排序
//return o1.getAge() - o2.getAge();
int result = o1.getAge() - o2.getAge();
//如果兩個人年齡相同,再使用姓名的第一個字比較
if (result==0){
result = o1.getName().charAt(0) - o2.getName().charAt(0);
}
return result;
}
});
System.out.println(list02);
}
}
==============================================================================
public class Student {
private String name;
private int age;
public Student() {
}
public Student(String name, int age) {
this.name = name;
this.age = age;
}
@Override
public String toString() {
return "Student{" +
"name='" + name + '\'' +
", age=" + age +
'}';
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
作者:wangyudong
出處:https://www.cnblogs.com/wydilearn
本文版權歸作者和部落格園共有,歡迎轉載,但必須給出原文連結,并保留此段聲明,否則保留追究法律責任的權利。