Collections
Posted zawjdbb
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Collections相关的知识,希望对你有一定的参考价值。
Collections:用来操作Set,List和Map等集合的工具类,提供大量方法对集合进行排序,查找和修改等操作,还提供了将集合对象设置为不可变,对象和对象实现同步控制等方法
排序操作:
对List集合元素进行排序:
void reverse(List l):反转指定集合的元素
void shuffle(List l):对集合元素进行随机排序,模拟洗牌动作
void sort(List l):根据元素的自然顺序对指定集合进行升序排序
void sort(List l, Comparator c):按c对集合排序
void swap(List l, int i, int j):将集合中i处元素和j处元素进行调换
void rotate(List l, int distance):当distance为正数时,将l集合后distance个元素整体移到前面;为负数时,将l前distance个元素整体移到后面。不会改变集合长度
ArrayList ar = new ArrayList(); Collections.reverse(ar);
查找操作:
int binarySearch(List l, Object key):使用二分搜索法搜索指定List,获得指定对象在List中的索引,需要保证List中元素处于有序状态
Object max(Collection coll):根据自然排序,返回集合中最大的元素
Object max(Collection coll, Comparator c):根据c指定的顺序,返回最大的元素
Object min(Collection coll):同上
Object min(Collection coll, Comparator c):同上
替换操作:
void fill(List l, Object o):使用指定元素o替换指定List集合中的所有元素
int frequency(Collection coll, Object o):返回指定集合中指定元素出现的次数
int indexOfSubList(List source, List target):返回子List对象在父List对象中第一次出现的索引,没有则返回-1
int lastIndexOfSubList(List source, List target):返回子List对象在父List对象中最后一次出现的索引,如果父List中没有出现这样的子List,返回-1
boolean replaceAll(List l, Object oldVal, Object newVal):使用一个新值newVal替换List对象的所有旧值oldVal
同步控制:
Collections类提供多个synchronizedXxx()方法,可以将指定集合包装成线程同步的集合,解决多线程并发访问集合时的线程安全问题:
Map m = Collectoins.synchronizedMap(new HashMap());
设置不可变集合:
Collections提供三个类方法来返回一个不可变集合:
emptyXxx():返回一个空的,不可变的集合对象,此处的集合既可以是List,也可以是Set,SortedSet,还可以是Map,SortedMap等
singletonXxx():返回一个只包含指定对象(只有一个或一项元素)的,不可变的集合对象此处的集合既可以是List,还可以是Map
unmodifiableXxx():返回指定集合对象的不可变视图,此处的集合既可以是List,也可以是Set,SortedSet,还可以是Map,SortedMap等
这三个方法参数是原有的集合对象,返回值的该对象的只读版本
Map m = Collections.unmodifiableMap(map);
以上是关于Collections的主要内容,如果未能解决你的问题,请参考以下文章