Collection工具类
程序员文章站
2024-01-14 08:08:16
...
java. utils.Collections是集合工具类,用来对集合进行操作。
部分方法如下:
- public static boolean addAll(Collection C,T… elements):往集合中添加一-些元素。
- public static void shuffle(List<?> list) 打乱顺序:打乱集合顺序。
package cn.itcast.day11.demo08;
import java.util.ArrayList;
import java.util.Collections;
public class CollectionsMain {
public static void main(String[] args) {
ArrayList list = new ArrayList();
ArrayList list1 = new ArrayList();
list.add("周冬雨");
list.add("刘亦菲");
list.add("杨超越");
list.add("詹青云");
System.out.println(list);
System.out.println("=============");
Collections.addAll(list1,"周冬雨","刘亦菲","杨超越","詹青云");
System.out.println(list1);
Collections.shuffle(list1);
System.out.println(list1);
}
}
执行结果
[周冬雨, 刘亦菲, 杨超越, 詹青云]
=============
[周冬雨, 刘亦菲, 杨超越, 詹青云]
[杨超越, 刘亦菲, 詹青云, 周冬雨]
- public static void sort(List list):将集合中元素按照默认规则排序。
package cn.itcast.day11.demo08;
import java.util.ArrayList;
import java.util.Collections;
public class CollectionsSort {
public static void main(String[] args) {
ArrayList<Integer> list01 = new ArrayList<>();
list01.add(21);
list01.add(43);
list01.add(82);
list01.add(23);
System.out.println(list01);
Collections.sort(list01);
System.out.println(list01);//默认升序
ArrayList<String> list02 = new ArrayList<>();
list02.add("a");
list02.add("w");
list02.add("kk");
System.out.println(list02);
Collections.sort(list02);
System.out.println(list02);
}
}
执行结果
[21, 43, 82, 23]
[21, 23, 43, 82]
[a, w, kk]
[a, kk, w]
自定义类Collections用法
注意:
sort(List list)使用前提: 被排序的集合里边存储的元素,必须实现Comparable,重写接口中的方法compare To定义排序的规则
自定义类
package cn.itcast.day11.demo08;
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();//年龄升序排序
}
}
主函数
package cn.itcast.day11.demo08;
import java.util.ArrayList;
import java.util.Collections;
public class CollectionsPerson {
public static void main(String[] args) {
ArrayList<Person> list = new ArrayList<>();
list.add(new Person("周冬雨",20));
list.add(new Person("刘亦菲",22));
list.add(new Person("杨超越",21));
System.out.println(list);
Collections.sort(list);
System.out.println(list);
}
}
执行结果
[Person{name='周冬雨', age=20}, Person{name='刘亦菲', age=22}, Person{name='杨超越', age=21}]
[Person{name='周冬雨', age=20}, Person{name='杨超越', age=21}, Person{name='刘亦菲', age=22}]
- public static void sort(List list, Comparator<? super T> ) :将集合中元素按照指定规则排序。
Comparator和Comparable的区别
- Comparable:自己(this )和别人(参数)比较,自己需要实现Comparable接口,重写比较的规则compareTo方法
- Comparator :相当于找一个第三方的裁判,比较两个
package cn.itcast.day11.demo08;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
public class CollectionsCompare {
public static void main(String[] args) {
ArrayList<Integer> list01 = new ArrayList<>();
list01.add(19);
list01.add(2);
list01.add(99);
System.out.println(list01);
Collections.sort(list01,new Comparator<Integer>() {
@Override
public int compare(Integer o1, Integer o2) {
return o1 - o2;//升序
//return o2 - o1;//降序
}
});
System.out.println(list01);
}
}
执行结果
[19, 2, 99]
[2, 19, 99]
自定义类排序
package cn.itcast.day11.demo08;
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;
}
}
package cn.itcast.day11.demo08;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
public class CollectionStudent {
public static void main(String[] args) {
ArrayList<Student> list = new ArrayList<>();
list.add(new Student("周冬雨",16));
list.add(new Student("刘亦菲",16));
list.add(new Student("周冬雨",17));
list.add(new Student("杨幂",10));
System.out.println(list);
Collections.sort(list, new Comparator<Student>() {
@Override
public int compare(Student o1, Student o2) {
//按照年龄升序排序
return o1.getAge() - o2.getAge();
}
});
System.out.println(list);
}
}
执行结果
[Student{name='周冬雨', age=16}, Student{name='刘亦菲', age=16}, Student{name='周冬雨', age=17}, Student{name='杨幂', age=10}]
[Student{name='杨幂', age=10}, Student{name='周冬雨', age=16}, Student{name='刘亦菲', age=16}, Student{name='周冬雨', age=17}]
上一篇: 事务
下一篇: SNS账号绑定,该怎么处理