Collections类
530字约2分钟
2025-09-23
Collections类
List list = new ArrayList();
list.add("py");
list.add("java");
list.add("php");
System.out.println(list); // [py, java, php]
元素位置反转
// 反转
Collections.reverse(list);
System.out.println(list); // [php, java, py]
随机排序
// 打乱元素顺序,随机排序
Collections.shuffle(list);
System.out.println(list); // [java, py, php]
自然排序
// 自然排序,升序(按首字母排序,首字母一样则判断下一个字母)
Collections.sort(list);
System.out.println(list); // [java, php, py]
返回自然排序的最大值
// 返回自然排序的最大值
// 首字母a ~ z中,越靠近z的值越大
System.out.println(Collections.max(list)); // py
返回自然排序的最小值
// 返回自然排序的最小值
// 首字母a ~ z中,越靠近a的值越小
System.out.println(Collections.min(list)); // java
自定义排序
- 返回正数:表示第一个参数(o1)应该排在第二个参数(o2)后面
- 返回负数:表示第一个参数(o1)应该排在第二个参数(o2)前面
- 返回0:表示两个参数位置保持不变
// 自定义排序
Collections.sort(list, new Comparator() {
@Override
public int compare(Object o1, Object o2) {
// 按字符串的长度排序
return ((String) o1).length() - ((String) o2).length();
}
});
System.out.println(list); // [py, php, java]
交换元素
// 交换元素
// 下标0的元素与下标1的元素进行交换
Collections.swap(list, 0, 1);
System.out.println(list); // [php, py, java]
返回最长/最短值
// 返回长度最长的值
Object maxLength = Collections.max(list, new Comparator() {
@Override
public int compare(Object o1, Object o2) {
// 返回长度最大值
return ((String) o1).length() - ((String) o2).length();
// 返回长度最小值
// return ((String) o2).length() - ((String) o1).length();
}
});
System.out.println(maxLength); // java
拷贝
// 拷贝
List list1 = new ArrayList();
// list1元素没有赋值的情况下默认为0个
// 所以list中三个元素拷贝不进来
// 需要给list1开辟对应的空间大小才能正常拷贝
for (int i = 0; i < list.size(); i++) {
list1.add("");
}
Collections.copy(list1, list);
System.out.println(list1); // [php, py, java]
替换
// 替换
Collections.replaceAll(list, "php", "vue");
System.out.println(list); // [vue, py, java]
返回元素出现次数
// 返回元素出现的次数
list.add("py");
System.out.println(Collections.frequency(list, "py")); // 2