概述
- Collections:对Collection、Map等集合进行操作的工具类。
- Collections中提供了一系列静态的方法对集合元素进行排序、查询和修改等操作,还提供了对集合对象设置不可变、 对集合对象实现同步控制等方法。
排序操作(均为static方法)
- reverse(List) 反转List中元素的顺序。
- shuffle(List) 对List集合元素进行随机排序。
- sort(List) 根据元素的自然排序对指定List集合元素进行升序排序。
- sort(List,Comparator) 根据指定的Comparator产生的顺序对List集合元素进行排序。
- swap(List,int,int) 将指定List集合中的i处元素和j处元素进行交换。
查找、替换
- Object max(Collection) :根据元素的自然排序,返回集合中最大元素。
- Object max(Collection,Comparator):根据Comparator指定的顺序,返回集合中的最大元素。
- Object min(Collection)
- Object min(Collection,Comparator)
- int frequency(Collection,Object):返回集合中指定元素出现的次数。
- void copy(List dest,List src):将src中的内容复制到dest中,前提是dest.size()>=src.size()
ArrayList list = new ArrayList();
list.add(123);
list.add(43);
list.add(765);
list.add(-97);
list.add(0);
List dest = Arrays.asList(new Object[list.size()]);
Collections.copy(dest,list);
- boolean replaceAll(List list,Object oldVal,Object newVal):使用新值替换List对象的所有旧值。
同步控制
- Collections类中提供了多个synchronizedXxx()方法,该方法可以将指定集合包装成线程同步的集合,从而解决多线程并发访问集合时的线程安全问题。
List list1 = Collections.synchronizedList(list);
返回的list1即使线程安全的。
Q:Collection和Collections异同?
Collection是集合类的一个接口,存储单列数据,其下有两个子接口List、Set,主要实现类有ArrayList、LinkedList、HashSet、LinkedHashSet等。
而Collections是操作集合的工具类。