本文共 3204 字,大约阅读时间需要 10 分钟。
Collections类提供了多种排序方法,主要包括两种形式的sort方法:
该方法使用元素的默认排序方式对列表进行排序。默认排序规则是基于元素的自然顺序,适用于基本数据类型和其 wrapper 类。例如:
该方法允许开发者自定义排序规则。通过传递一个Comparator接口实例,可以指定元素之间的比较逻辑。例如:
Collections.sort(list2, new Comparator() { @Override public int compare(Person p1, Person p2) { return Integer.compare(p1.getAge(), p2.getAge()); }});
以下是一个简单的测试示例:
import java.util.ArrayList;import java.util.Collections;import java.util.Comparator;import java.util.List;import com.trs.entity.Person;public class TestCollections { public static void main(String[] args) { List list1 = new ArrayList<>(); list1.add("ccc"); list1.add("bbb"); list1.add("aaa"); list1.add("ddd"); Collections.sort(list1); System.out.println("list1排序后:" + list1); List list2 = new ArrayList<>(); list2.add(new Person(25, "Andy", 9500, "Writer")); list2.add(new Person(27, "Rose", 8500, "Saler")); list2.add(new Person(21, "Jack", 8800, "Singer")); // 按照年龄排序 Collections.sort(list2, new Comparator () { @Override public int compare(Person p1, Person p2) { return p1.getAge() - p2.getAge(); } }); System.out.println("list2按年龄排序后:" + list2); }} Collections类还提供了二分法查找的方法,适用于已排序的列表:
该方法用于在已排序的列表中查找指定的键。返回值如下:
该方法与第一种方法类似,但允许自定义比较器。
import java.util.ArrayList;import java.util.Collections;import java.util.List;public class TestCollections { public static void main(String[] args) { List list1 = new ArrayList<>(); list1.add("ccc"); list1.add("bbb"); list1.add("aaa"); list1.add("ddd"); Collections.sort(list1); int index = Collections.binarySearch(list1, "ddd"); System.out.println("binarySearch结果:" + index); }} Collections类提供了两个混排方法:
该方法使用默认随机源对列表进行随机置换。所有置换的可能性基本相同。
该方法使用指定的随机源对列表进行置换。
import java.util.ArrayList;import java.util.Collections;import java.util.List;import java.util.Random;public class TestCollections { public static void main(String[] args) { Random random = new Random(47); Integer[] array = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 }; List list = new ArrayList<>(Arrays.asList(array)); System.out.println("列表初始内容:" + list); Collections.shuffle(list, random); System.out.println("列表混排后:" + list); }} Collections类提供了一个方法来对列表进行反转:
该方法对列表进行降序排序,基于元素的自然顺序。
import java.util.ArrayList;import java.util.Collections;import java.util.List;public class TestCollections { public static void main(String[] args) { List list = new ArrayList<>(); list.add(1); list.add(4); list.add(2); list.add(8); System.out.println("列表初始内容:" + list); Collections.reverse(list); System.out.println("列表反转后:" + list); }} Collections类是Java集合工具类中的重要成员,提供了丰富的操作方法,包括排序、查找、混排和反转等功能。通过合理使用这些方法,可以显著提升代码的简洁性和性能。
转载地址:http://pxne.baihongyu.com/