Java Collections集合工具类的方法

mac2025-12-18  7

集合工具类

添加多个元素、打乱集合顺序

sort方法【两种实现方式】

方法1:

默认是升序排序

只能传List集合不能传Set集合

自定义类型要重写接口的实现类中的compareTo方法,并且只能在实现类中重写,不能使用匿名内部类重写

package Collections; 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; } 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 person) { // 比较两个人的年龄 this和参数person return person.getAge() - this.getAge(); // return person.getAge() - this.getAge(); } }

使用

Collections.sort(list1);

方法2:

自定义类型排序的第二种写法 使用匿名内部类重写其中的compare方法 ,且只能使用匿名内部类

两种方法的区别:

比较基本类型

比较自定义类型

多个条件判断 ,年龄相等按照姓名进行排序

package Collections; import java.util.ArrayList; import java.util.Collections; import java.util.Comparator; public class TestMain { public static void main(String[] args) { ArrayList<Integer> list1 = new ArrayList<>(); Collections.addAll(list1,4,5,8,9,7,5,2,5,7); System.out.println(list1); // 默认是升序排序 Collections.sort(list1); System.out.println(list1); ArrayList<Person> list2 = new ArrayList<>(); list2.add(new Person("zhang",11)); list2.add(new Person("zhang",45)); list2.add(new Person("zhang",19)); System.out.println(list2); Collections.sort(list2, new Comparator<Person>() {// 传的是一个接口 需要覆盖重写compare方法 @Override public int compare(Person student, Person t1) { return student.getAge()-t1.getAge(); // 按照年龄升序排序 } }); System.out.println(list2); } }

 

最新回复(0)