Java Collections集合工具类的用法(附带实例)
Java里的集合工具类(Collections)是 JDK 为我们提供的用于操作 List、Set 和 Map 等集合的工具类,该类位于 java.util 包中,包含了很多用于操作集合的静态方法。
例如:
如果想获取 List 对象或 Set 对象中的最小元素,则可以使用 Collections 类的 min() 方法,例如:
例如:
例如:
Java Collections排序操作
Collections 提供了方便对 List 进行排序的方法,通过它可以很方便地对 List 进行正向排序、逆向排序或随机排序。例如:
public class CollectionsTest { public static void main(String[] args) { List<Integer> list = new ArrayList<Integer>(); list.add(20); list.add(10); list.add(50); list.add(30); list.add(5); System.out.println("排序前:" + list); Collections.sort(list); System.out.println("正向排序后:" + list); Collections.reverse(list); System.out.println("逆向排序后:" + list); Collections.shuffle(list); System.out.println("随机排序:" + list); Collections.sort(list, new MyComparator()); System.out.println("自定义比较器排序:" + list); } } class MyComparator implements Comparator<Integer> { public int compare(Integer s1, Integer s2) { if (s1 > s2) return 1; else if (s1 < s2) return -1; else return 0; } }输出结果为:
排序前:[20, 10, 50, 30, 5]
正向排序后:[5, 10, 20, 30, 50]
正向排序后:[50, 30, 20, 10, 5]
随机排序:[5, 30, 50, 20, 10]
自定义比较器排序:[5, 10, 20, 30, 50]
Java Collections获取最大和最小元素
如果想获取 List 对象或 Set 对象中的最大元素,则可以使用 Collections 类的 max() 方法,例如:public class CollectionsTest { public static void main(String[] args) { List<Integer> list = new ArrayList<Integer>(); list.add(20); list.add(10); list.add(50); list.add(30); list.add(5); System.out.println("List中最大的元素:" + Collections.max(list)); Set<Integer> set = new HashSet<Integer>(list); System.out.println("Set中最大的元素:" + Collections.max(set)); } }输出结果为:
List中最大的元素:50
Set中最大的元素:50
如果想获取 List 对象或 Set 对象中的最小元素,则可以使用 Collections 类的 min() 方法,例如:
public class CollectionsTest { public static void main(String[] args) { List<Integer> list = new ArrayList<Integer>(); list.add(20); list.add(10); list.add(50); list.add(30); list.add(5); System.out.println("List中最小的元素:" + Collections.min(list)); Set<Integer> set = new HashSet<Integer>(list); System.out.println("Set中最小的元素:" + Collections.min(set)); } }输出结果为:
List中最小的元素:5
Set中最小的元素:5
Java Collections对集合进行填充
如果想对某个 List 对象的所有元素都修改为统一的值,可以使用 Collections 类的 fill() 方法,例如:public class CollectionsTest { public static void main(String[] args) { List<Integer> list = new ArrayList<Integer>(); list.add(20); list.add(10); list.add(50); list.add(30); list.add(5); System.out.println("填充前:" + list); Collections.fill(list, 100); System.out.println("填充后:" + list); } }输出结果为:
填充前:[20, 10, 50, 30, 5]
填充后:[100, 100, 100, 100, 100]
Java Collections计算某元素出现次数
如果想要计算某个 List 对象或 Set 对象中某个元素值出现的次数,可以使用 Collections 类的 frequency() 方法,例如:public class CollectionsTest { public static void main(String[] args) { List<Integer> list = new ArrayList<Integer>(); list.add(20); list.add(10); list.add(20); list.add(30); list.add(20); System.out.println("元素20出现的次数:" + Collections.frequency(list, 20)); } }输出结果为:
元素20出现的次数:3
Java Collections替换所有元素
如果想要替换某个 List 对象中的元素,则可以使用 Collections 类的 replaceAll() 方法,所有指定值的元素都将会被替换。例如:
public class CollectionsTest { public static void main(String[] args) { List<Integer> list = new ArrayList<Integer>(); list.add(20); list.add(10); list.add(20); list.add(30); list.add(20); System.out.println("替换前:" + list); Collections.replaceAll(list, 20, 100); System.out.println("替换后:" + list); } }输出结果为:
替换前:[20, 10, 20, 30, 20]
替换后:[100, 10, 100, 30, 100]
Java Collections复制List对象
如果想将某个 List 对象的所有元素复制到另一个 List 对象中,可以使用 Collections 类的 copy() 方法。要注意的是两个 List 对象的长度一般要保持一致。例如:
public class CollectionsTest { public static void main(String[] args) { List<Integer> list = new ArrayList<Integer>(); list.add(20); list.add(10); list.add(20); list.add(30); list.add(20); List<Integer> list2 = new ArrayList<Integer>(); list2.add(0); list2.add(0); list2.add(0); list2.add(0); list2.add(0); System.out.println("复制前list2:" + list2); Collections.copy(list2, list); System.out.println("复制后list2:" + list2); } }输出结果为:
复制前list2:[0, 0, 0, 0, 0]
复制后list2:[20, 10, 20, 30, 20]