Collections类是针对集合操作的工具类
Collections类是针对集合操作的工具类
两种方法!!!!!
图:
方法1:
图:
代码实现
Student类(重点一定要仔细看)
package Demo;public class Student implements Comparable<Student> {//实现了该接口Comparable 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 void sort(List list, Comparator c) 根据指定的比较器引起的顺序对指定的列表进行排序 Collections.sort(s); //遍历集合 for (Student x:s) { System.out.println(x.getName()+","+x.getAge()); } }}
方法2:
图:
- static void sort(List list, Comparator 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 void sort(List list, Comparator 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