Collections类是针对集合操作的工具类
两种方法!!!!!
图:
方法1:
图:
代码实现
Student类(重点一定要仔细看)
package Demo;
public class Student implements Comparable<Student> {
//实现了该接口Comparable<Student>
private String name;
private int age;
public Student() {
}
public Student(String name, int age) {
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 int compareTo(Student o) {
//主 学号之间
int num=this.age-o.age;
//次 名字之间
int num2=num==0?this.name.compareTo(o.name) : num;
return num2;
}
}
Demo类
package Demo;
import java.util.*;
public class Demo {
public static void main(String[] args) {
//创建ArraysList集合对象
ArrayList<Student> s = new ArrayList<>();
//创建学生对象
Student s1 = new Student("iKun",27);
Student s2 = new Student("myy",22);
Student s3 = new Student("fyy",23);
//把学生添加集合中
s.add(s1);
s.add(s2);
s.add(s3);
//使用Collections中的sort方法对ArraysList集合排序
//static <T> void sort(List<T> list, Comparator<? super T> c) 根据指定的比较器引起的顺序对指定的列表进行排序
Collections.sort(s);
//遍历集合
for (Student x:s) {
System.out.println(x.getName()+","+x.getAge());
}
}
}
方法2:
图:
- static void sort(List list, Comparator<? super T> c) 根据指定的比较器引起的顺序对指定的列表进行排序
代码实现
Demo类(重点一定要仔细看)
package Demo;
import java.util.*;
public class Demo {
public static void main(String[] args) {
//创建ArraysList集合对象
ArrayList<Student> s = new ArrayList<>();
//创建学生对象
Student s1 = new Student("iKun",27);
Student s2 = new Student("myy",22);
Student s3 = new Student("fyy",23);
//把学生添加集合中
s.add(s1);
s.add(s2);
s.add(s3);
//使用Collections中的sort方法对ArraysList集合排序
//static <T> void sort(List<T> list, Comparator<? super T> c) 根据指定的比较器引起的顺序对指定的列表进行排序
// 匿名类
Collections.sort(s, new Comparator<Student>() {
@Override
public int compare(Student o1,Student o2) {
//主 学号之间
int num = o1.getAge()-o2.getAge();
//次 名字之间
int num2=num==0?o1.getName().compareTo(o2.getName()):num;
return num2;
}
});
//遍历集合
for (Student x:s) {
System.out.println(x.getName()+","+x.getAge());
}
}
}
原因:
Student类
package Demo;
public class Student{
private String name;
private int age;
public Student() {
}
public Student(String name, int age) {
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;
}
}
输出的结果
myy,22
fyy,23
iKun,27