java.util.Collections学习

来源:互联网 发布:无名智者云签到源码 编辑:程序博客网 时间:2024/05/01 09:52

java.util.Collections

此类为java.util.Collection的工具类.

字段:
public static final List EMPTY_LIST ;
public static final Map EMPTY_MAP ;
public static fianl Set EMPTY_SET ;

方法:
boolean addAll(Collection c,Object ......a) 
将所有指定元素加入到指定collection中.可以分别指定要添加的元素,或者将他们指定为一个数组.同c.addAll(Arrays.asList(elements)).

int binarySearch(List list,Object key)
使用二进制搜索算法来搜索指定列表,以获得指定对象.在进行调用之前,必须根据列表元素的自然顺序对列表进行升序排序(通过Collections.sort(list)).
int binarySearch(List list,Object key,Comparator c)
使用二进制搜索算法来搜索指定列表,以获得指定对象.在进行调用之前,必须根据列表元素的自然顺序对列表进行升序排序(通过Collections.sort(list,Comparator)).

Collection checkedCollection(Collection c,Class type)
返回指定collection的一个动态类型安全视图.
List checkedList(List list,Class type)
返回指定list的一个动态类型安全视图.
Map checkedMap(Map m,Class keyType,Class valueType )
返回指定映射的一个动态类型安全视图.
Set checkedSet(Set s,Class Type)
返回指定Set的一个动态类型安全视图.
SortedMap checkedSortedMap(SortedMap m,Class keyType,Class valueType )
返回指定映射的一个动态类型安全视图.
SortedSet checkedSortedSet(SortedSet s,Class Type)
返回指定Set的一个动态类型安全视图.

void copy(List dest,List src)
将所有元素从一个列表复制到另外一个列表中.dest目标列表,src源列表

boolean disjoint(Collection c1,Collection c2)
如果两个指定collection中没有相同的元素,则返回true

public static final List emptyList() 返回空的不可变的列表 
public static final Map emptyMap() 返回空的不可变的映射
public static final Set emptySet() 返回空的不可变的Set

Enumeration enumeration(Collection c) 
返回一个指定collection上的枚举.
void fill(List list,Object o) 
使用指定元素替换指定列表中的所有元素.
int frequency(Collection c,Object o)
返回指定collection中等于指定对象的元素数.
int indexOfSubList(List source,List target) 
返回指定源列表中第一次出现指定目标列表起始位置,如果没有出现这样的列表,返回-1
int LastindexOfSubList(List source,List target) 
返回指定源列表中最后一次出现指定目标列表的起始位置,如果没有出现这样的列表,返回-1
ArrayList list(Enumeration e) 
返回一个数组列表,它按照枚举返回元素的顺序包含指定枚举返回的元素.
Object max(Collection c)
根据元素的自然顺序,返回给定collection的最大值.
Object max(Collection c,Comparator comp)
根据指定比较器产生的顺序,返回给定collection的最大元素.
Object min(Collection c)
根据元素的自然顺序,返回给定collection的最小值.
Object min(Collection c,Comparator comp)
根据指定比较器产生的顺序,返回给定collection的最小元素.
List nCopies(int n,T o)
返回由指定对象的n个拷贝组成的不可变列表.
boolean replaceAll(List l,Object oldVal,Object newVal)
使用另一个值替换列表中出现的所有某一指定值.
reverse(List l)
反转指定列表中的元素顺序.
Comparator reverseOrder() 
返回一个比较器,它强行反转实现 Comparable 接口那些对象 collection 上的自然顺序.
Comparator reverseOrder(Comparator c) 
返回一个比较器,它强行反转指定比较器的顺序.
Set singleton(Object o) 
返回一个只包含指定对象的不可变的set
List singletonList(Object o) 
返回一个只包含指定对象的不可变的列表
Map singletonMap(Object key,Object value) 
返回一个不可变的映射,它只将指定键映射到指定值
void sort(List l) 根据元素的自然顺序 对指定列表按升序进行排序
void sort(List l,Comparator c) 根据指定比较器产生的顺序对指定列表进行排序
void swap(List l,int i,int j) 在指定列表的指定位置处交换元素

Collection synchronizedCollection(Collection c)
返回由指定 collection 支持的同步(线程安全的)collection
List synchronizedList(List l)
返回由指定列表支持的同步(线程安全的)列表
Map synchronizedMap(Map m)
返回由指定映射支持的同步(线程安全的)映射
Set synchronizedSet(Set s)
返回由指定Set支持的同步(线程安全的)Set
SortedMap synchronizedSortedMap(SortedMap smap)
返回由指定有序列表支持的同步(线程安全的)有序列表
SortedSet synchronizedSortedSet(SortedSet st)
返回由指定有序Set支持的同步(线程安全的)有序Set

Collection unmodifiableCollection(Collection c)
返回指定 collection 的不可修改视图
List unmodifiableList(List l)
返回指定列表的不可修改视图
Map unmodifiableMap(Map m)
返回指定映射的不可修改视图
Set unmodifiableSet(Set s)
返回指定 set 的不可修改视图
SortedMap unmodifiableSortedMap(SortedMap smap)
返回指定有序映射的不可修改视图
SortedSet unmodifiableSortedSet(SortedSet st)
返回指定有序 set 的不可修改视图

ex:
(1).binarySearch的用法:

 

输出情况:
未排序之前,用binarySearch返回cc的索引值:-3
第[0]个位置的值为:aa
第[1]个位置的值为:bb
第[2]个位置的值为:dd
第[3]个位置的值为:cc
自然排序之后,用binarySearch返回cc的索引值:2
第[0]个位置的值为:aa
第[1]个位置的值为:bb
第[2]个位置的值为:cc
第[3]个位置的值为:dd
用自己写的排序方法排序之后,用binarySearch返回cc的索引值:1
第[0]个位置的值为:dd
第[1]个位置的值为:cc
第[2]个位置的值为:bb
第[3]个位置的值为:aa

(2) checkedCollection等返回动态类型安全视图的方法:
List lt = new ArrayList();
lt.add(Integer.valueOf(1) ) ;
lt.add(Double.valueOf(2.0));
lt.add(Boolean.valueOf(true));
List b = Collections.checkedList(lt,Boolean.class);
b.add(Boolean.valueOf(false));//此时不报错误;
b.add("ccc") ;//此时报错:
Exception in thread "main" java.lang.ClassCastException: Attempt to insert class java.lang.String element into collection with element type class java.lang.Boolean
at java.util.Collections$CheckedCollection.typeCheck(Collections.java:2206)
at java.util.Collections$CheckedCollection.add(Collections.java:2240)
at com.angel.www.CollectionTool.main(CollectionTool.java:36)

 

原创粉丝点击