Collection集合的工具类
程序员文章站
2024-01-14 10:12:28
...
Collections集合工具类的方法:
public static <T> boolean addAll(Collection<T> c,T....elements):往集合中添加一些元素
public static void shuffle(List<?> List):打乱顺序,打乱集合顺序
========================
public class CollectionsCls {
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");
//一次性的往集合中添加多个元素
boolean addAll = Collections.addAll(list, "a","b","c");
System.out.println(list);
//打乱集合中的顺序,这是一个方法。
Collections.shuffle(list);
System.out.println(list);
}
}
//指定泛型。
public class Person implements Comparable<Person>{
private String name;
private int age;
public Person() {
super();
}
public Person(String name, int age) {
super();
this.name = name;
this.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 String toString() {
// TODO Auto-generated method stub
return this.name + this.age;
}
//重写这个方法
@Override
public int compareTo(Person o) {
// TODO Auto-generated method stub
// return 0;//认为元素都是相同的
//自定义比较的规则,比较两个人的年龄(this,参数是Person)
//升序规则
// return this.getAge() - o.getAge();
//降序
return o.getAge() - this.getAge() ;
}
}
import java.util.ArrayList;
import java.util.Collections;
/*
* public static <T> void sort(List<T> List):
* 将集合中的元素按照默认规则排序
* 被排序的集合,里面必须实现Comparable,重写接口中的方法compareTo定义排序的方法
*/
public class DemoSort {
public static void main(String[] args) {
ArrayList<Integer> list01 = new ArrayList<>();
list01.add(1);
list01.add(2);
list01.add(3);
System.out.println(list01);
//默认是升序
Collections.sort(list01);
System.out.println(list01);
ArrayList<String> list02 = new ArrayList<>();
list02.add("a");
list02.add("b");
list02.add("c");
System.out.println(list02);
Collections.sort(list02);
//自定义类型
ArrayList<Person> per = new ArrayList<>();
per.add(new Person("张三",18));
per.add(new Person("李四",18));
per.add(new Person("王五",18));
System.out.println(per);
//重写就不会报错了
Collections.sort(per); //报错,Person类必须重写compare 接口
}
}
public class Student {
private String name;
private int age;
public Student() {
super();
}
public Student(String name, int age) {
super();
this.name = name;
this.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 String toString() {
// TODO Auto-generated method stub
return this.name+this.age;
}
}
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
/*
* java.util.Collections是集合工具类,用来对集合进行操作
* public static <T> void sort(List<T> List,Comparator<? super T>)
* Comparator 和 Comparable的区别
* Comparable:自己(this)和别人(参数)进行比较自己需要实现Comparable接口,重写比较规则compareTo方法
* 调用的时候简单一点。
* Comparator:相当于找一个第三方的裁判,比较两个
*/
public class DemoSortCom {
public static void main(String[] args) {
ArrayList<Integer> list01 = new ArrayList<>();
list01.add(1);
list01.add(2);
list01.add(3);
list01.add(4);
System.out.println(list01);
Collections.sort(list01,new Comparator<Integer>() {
//重写比较的规则。
@Override
public int compare(Integer o1, Integer o2) {
// TODO Auto-generated method stub
// return o1-o2;//升序
return o2-o1;
}
});
System.out.println(list01);
System.out.println("----------------------------");
ArrayList<Student> list02 = new ArrayList<>();
list02.add(new Student("张三",18));
list02.add(new Student("李四",20));
list02.add(new Student("王五",17));
list02.add(new Student("赵六",28));
list02.add(new Student("杨六",28));
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) {
// 返回值
int result = o1.getAge()-o2.getAge();
//如果两个人的年龄相同,在使用姓名的第一个字比较
if(result==0){
//首字母的索引charAt(0)
result = o1.getName().charAt(0)-o2.getName().charAt(0);
}
return result;
}
});
System.out.println(list02);
}
}
上一篇: 如何成为一名 Java 冠军程序员?
下一篇: 数组排序方法sort()