Collections 工具类
# Collections 工具类
Collections
是一个操作 Set、List 和 Map 等集合的工具类,它提供了一系列静态方法用于对集合元素进行排序、查询、替换等操作。
# 1. 排序操作
# 1.1. 反转顺序:reverse(List<?>)
该方法用于将 List 中的元素顺序进行反转。
示例代码:
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
public class ReverseExample {
public static void main(String[] args) {
List<String> list = new ArrayList<>();
list.add("Jack");
list.add("Tom");
list.add("Smith");
list.add("Rose");
// 反转 List 集合中的元素顺序
Collections.reverse(list);
System.out.println("反转后的顺序:" + list); // 输出:[Rose, Smith, Tom, Jack]
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# 1.2. 随机排序:shuffle(List<?>)
该方法用于对 List 集合中的元素进行随机排序,每次执行的结果可能不同。
示例代码:
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
public class ShuffleExample {
public static void main(String[] args) {
List<String> list = new ArrayList<>();
list.add("Jack");
list.add("Tom");
list.add("Smith");
list.add("Rose");
// 对 List 集合进行随机排序
Collections.shuffle(list);
System.out.println("随机排序后:" + list); // 输出结果每次运行可能不同
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# 1.3. 自然排序:sort(List<?>)
该方法根据元素的自然顺序(通常是字母顺序或数字顺序)对 List 集合进行排序。
示例代码:
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
public class NaturalSortExample {
public static void main(String[] args) {
List<String> list = new ArrayList<>();
list.add("Jack");
list.add("Tom");
list.add("Smith");
list.add("Rose");
// 根据自然顺序对 List 集合进行升序排序
Collections.sort(list);
System.out.println("自然顺序排序后:" + list); // 输出:[Jack, Rose, Smith, Tom]
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# 1.4. 自定义排序:sort(List<?>, Comparator<?>)
该方法允许根据自定义规则(Comparator)对 List 进行排序。
示例代码:
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
public class CustomSortExample {
public static void main(String[] args) {
List<String> list = new ArrayList<>();
list.add("Jack");
list.add("Tom");
list.add("Smith");
list.add("Rose");
// 根据字符串长度对 List 集合元素进行排序
Collections.sort(list, new Comparator<String>() {
@Override
public int compare(String o1, String o2) {
return o1.length() - o2.length(); // 按字符串长度升序排序
}
});
System.out.println("按长度排序后:" + list); // 输出:[Tom, Jack, Rose, Smith]
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
# 1.5. 交换元素:swap(List<?>, int, int)
该方法用于交换 List 中指定位置的两个元素。
示例代码:
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
public class SwapExample {
public static void main(String[] args) {
List<String> list = new ArrayList<>();
list.add("Jack");
list.add("Tom");
list.add("Smith");
list.add("Rose");
// 交换 List 中索引为 1 和 2 的元素
Collections.swap(list, 1, 2);
System.out.println("交换后的顺序:" + list); // 输出:[Jack, Smith, Tom, Rose]
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# 2. 查找与替换操作
# 2.1. 查找最大元素:max(Collection<?>)
该方法根据元素的自然顺序返回集合中的最大值。
示例代码:
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
public class MaxElementExample {
public static void main(String[] args) {
List<String> list = new ArrayList<>();
list.add("Jack");
list.add("Tom");
list.add("Smith");
list.add("Rose");
// 查找集合中的最大元素(自然顺序)
String maxElement = Collections.max(list);
System.out.println("自然顺序最大元素:" + maxElement); // 输出:Tom
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# 2.2. 自定义最大元素:max(Collection<?>, Comparator<?>)
该方法允许根据自定义 Comparator 规则查找集合中的最大元素。
示例代码:
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
public class MaxWithComparatorExample {
public static void main(String[] args) {
List<String> list = new ArrayList<>();
list.add("Jack");
list.add("Tom");
list.add("Smith");
list.add("Rose");
// 根据字符串长度查找集合中的最大元素
String maxLengthElement = Collections.max(list, new Comparator<String>() {
@Override
public int compare(String o1, String o2) {
return o1.length() - o2.length(); // 按字符串长度比较
}
});
System.out.println("长度最大的元素:" + maxLengthElement); // 输出:Smith
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
# 2.3. 查找最小元素:min(Collection<?>)
该方法与 max(Collection<?>)
类似,但用于查找最小元素。
# 2.4. 自定义最小元素:min(Collection<?>, Comparator<?>)
与 max(Collection<?>, Comparator<?>)
类似,用于查找最小元素。
# 2.5 统计元素频次:frequency(Collection<?>, Object)
该方法返回集合中指定元素的出现次数。
示例代码:
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
public class FrequencyExample {
public static void main(String[] args) {
List<String> list = new ArrayList<>();
list.add("Jack");
list.add("Tom");
list.add("Smith");
list.add("Rose");
list.add("Tom");
// 查找集合中 "Tom" 出现的次数
int frequency = Collections.frequency(list, "Tom");
System.out.println("Tom 出现次数:" + frequency); // 输出:2
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
# 2.6 复制内容:copy(List<? super T> dest, List<? extends T> src)
该方法用于将源集合的内容复制到目标集合中,目标集合的大小必须与源集合一致。
示例代码:
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
public class CopyExample {
public static void main(String[] args) {
List<String> src = new ArrayList<>();
src.add("Jack");
src.add("Tom");
src.add("Smith");
src.add("Rose");
// 创建一个与 src 大小相同的目标集合
List<String> dest = new ArrayList<>(Collections.nCopies(src.size(), null));
// 将 src 中的内容复制到 dest 中
Collections.copy(dest, src);
System.out.println("复制后的列表:" + dest); // 输出:[Jack, Tom, Smith, Rose]
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
# 2.7 替换元素:replaceAll(List<T>, T oldVal, T newVal)
该方法用于将 List 中所有指定的旧值替换为新值。
示例代码:
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
public class ReplaceAllExample {
public static void main(String[] args) {
List<String> list = new ArrayList<>();
list.add("Jack");
list.add("Tom");
list.add("Smith");
list.add("Rose");
list.add("Tom");
// 使用新值 "Thomas" 替换所有 "Tom"
Collections.replaceAll(list, "Tom", "Thomas");
System.out.println("替换后的列表:" + list); // 输出:[Jack, Thomas, Smith, Rose, Thomas]
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
结论
Collections
工具类提供了丰富的静态方法,用于对集合进行排序、查找、替换等操作。通过灵活使用这些方法,可以方便地处理 Java 中的各种集合数据。
编辑此页 (opens new window)
上次更新: 2024/12/28, 18:32:08