操作集合的工具类:Collections

非 Y 不嫁゛ 提交于 2020-02-23 00:08:18

操作集合的工具类:Collections

排序操作

Collections提供了如下类方法用于对List集合进行排序:

  1. void reverse(List list);反转指定List集合中元素的顺序
  2. void shuffle(List list);对List集合元素进行随机排序,shuffle方法模拟了洗牌动作
  3. void sort(List list);根据自然顺序对Lsit集合按升序排列
  4. void sort(List list,Comparator c);类似于定制排序
  5. void swap(List list ,int i, int j);将List结合中i处元素和j处元素进行交换
  6. void rotate(List list,int distance);当distance为正数时,将list集合的后distance元素整体移动到前面;当distance为负数时,将List集合前distance元素整体移动到后面
ArrayList nums = new ArrayList();
//添加元素
......
Collections.reverse(nums);

查找替换操作

Collections还提供了如下查找,替换该集合元素的类方法:

  1. int binarySearch(List list,Object key);
  2. Object max(Collection coll);
  3. Object max(Collection coll,Comparator comp);
  4. Object min(Collection coll);
  5. Object min(Collection coll,Comparator comp);
  6. void fill(List list ,Object obj);//使用指定obj替换list的所有元素
  7. int frequency(Collection c,Object o);//返回指定集合中指定元素的出现次数
  8. int indexOfSubList(List source,List target);返回子List在父list中第一次出现的索引,如果父List没有出现这样的子list,则返回-1
  9. int lastIndexOfSubList(List source,List target);返回子List在父list中最后一次出现的索引,如果父List没有出现这样的子list,则返回-1;
  10. boolean replaceAll(List list,Object oldVal,Object newVal);使用newVal替换list所有旧值oldVal

同步控制

Collections类提供了多个synchronizedXxx()方法,该方法可以将指定集合包装成线程同步的集合,从而解决多线程并发访问集合时的线程安全问题。

//下面程序创建了4个安全的集合对象
Collection c = Collections.synchronizedCollection(new ArrayList());
List list = Collections.synchronizedList(new ArrayList());
Set s = Collections.synchronizedSet(new HashSet());
Map m = Collections.synchronizedMap(new HashMap());

设置不可变集合

Collections提供了如下三类方法来返回不可变集合:

  1. emptyXxx();返回一个空的,不可变的集合对象
  2. singletonXxx();返回一个只包含指定对象的,不可变的集合对象,此处的集合既可以时List,也可以是Map
  3. unmodifiableXxx();返回指定对象的不可变视图
    上述的三类方法返回值是该集合的只读版本。
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!