Java提供了一个操作Set List Map 的工具类Collections .
里面有大量方法对集合元素进行排序,查询修改等操作。
还能把集合设为不可变。
对集合对象实现线程同步控制。
同步控制
同步控制
在hashtable那提过,虽然他是线程安全的,但是他性能比较差,所以Collections.synchronizedXxx(new Xxx()) ,例子Collections.synchronizedCollection(new ArrayList())就能转为线程安全的。HashSet TreeSet ArrayList ArrayDeque LinkedLisr HashMap TreeMap都是线程不安全的。
排序操作:
以下常用的类方法可对List集合元素进行排序:
void reverse(List list) 反转List集合元素进行排序
void shuffle(List list) 按自然顺序对List排序,升序
void sort(List list)对List进行排序
void sort(List list,Comparator c)根据指定的Comparator 产生的顺序对List进行排序
void swap(List list ,int i,int j)把list集合从i到j位置的集合元素交换,
void rotate(List list,int distance) 当distance为正数时,把List集合后distance个元素整体移到前面。如果是负数,则吧前distance个元素整体移到后面。不改变集合的长度
排序操作:
以下常用的类方法可对List集合元素进行排序:
void reverse(List list) 反转List集合元素进行排序
void shuffle(List list) 按自然顺序对List排序,升序
void sort(List list)对List进行排序
void sort(List list,Comparator c)根据指定的Comparator 产生的顺序对List进行排序
void swap(List list ,int i,int j)把list集合从i到j位置的集合元素交换,
void rotate(List list,int distance) 当distance为正数时,把List集合后distance个元素整体移到前面。如果是负数,则吧前distance个元素整体移到后面。不改变集合的长度
查找,替换操作
static int binarySearch(List list,Object key) 二分搜索法来搜索指定对象在list索引。(只有有序状态List集合才能用二分查询)
static Object max(Collection coll) 根据元素的自然顺序,返回集合的最大元素
static Object max(Comparator c,Collection coll) 根据指定Comparator 的给出的顺序,返回集合的最大元素
static Object min(Collection coll) 根据元素的自然顺序,返回集合的最小元素
static Object min(Comparator c,Collection coll) 根据指定Comparator 的给出的顺序,返回集合的最小元素
static int frequency(Collection coll,Object key) 返回指定集合中指定对象的数量
static void fill(Collection coll,Object obj) 用指定对象obj替换指定List集合中的所有元素
static int indexOfSubList(List source,List target)返回指定子List对象在母List对象中出现的第一次出现位置索引。如果没有就返回-1
static int LastIndexOfSubList(List source,List target)返回指定子List对象在母List对象中出现的最后一次出现位置索引。如果没有就返回-1
static boolean replaceAll(List list,Object newVal,Object oldVal)用一个新值替换List集合里的旧值
设置不可变集合
emptyXxx()返回一个空的不可变的集合对象
singletonXxx()返回只包含指定对象的(只有一个或一项的)不可变的集合对象
unmodifiableXxx()返回指定集合对象的不可变的视图
下面举例子说明
.....待续