Collection和Collections有什么区别?
- 2019 年 10 月 4 日
- 笔记
1、java.util.Collection 是一个集合接口。它提供了对集合对象进行基本操作的通用接口方法。Collection接口在Java 类库中有很多具体的实现。Collection接口的意义是为各种具体的集合提供了最大化的统一操作方式。
List,Set,Queue接口都继承Collection。 直接实现该接口的类只有AbstractCollection类,该类也只是一个抽象类,提供了对集合类操作的一些基本实现。List和Set的具体实现类基本上都直接或间接的继承了该类。
2、java.util.Collections 是一个包装类。 它包含有各种有关集合操作的静态方法(对集合的搜索、排序、线程安全化等),大多数方法都是用来处理线性表的。此类不能实例化,就像一个工具类,服务于Java的Collection框架。
public class CollectionsTest { public static void main(String[] args) { ArrayList nums = new ArrayList(); nums.add(8); nums.add(-3); nums.add(2); nums.add(9); nums.add(-2); System.out.println("集合是否为空:" + nums.isEmpty()); System.out.println("默认顺序:" + nums); Collections.reverse(nums); System.out.println("反转后顺序:" + nums); Collections.sort(nums); System.out.println("排序后顺序:" + nums); Collections.shuffle(nums); System.out.println("混淆后顺序:" + nums); // 下面只是为了演示定制排序的用法,将int类型转成string进行比较 Collections.sort(nums, new Comparator() { @Override public int compare(Object o1, Object o2) { String s1 = String.valueOf(o1); String s2 = String.valueOf(o2); return s1.compareTo(s2); } }); System.out.println("指定排序后顺序:" + nums); System.out.println("最大的值是:" + Collections.max(nums)); System.out.println("最小的值是:" + Collections.min(nums)); } }