1. 集合中常用的工具类
Arrays
类Collections
类
1.1. Arrays 类的常用方法
- 此类包含用来操作数组(比如排序和搜索)的各种方法.
1.1.1. asList(T... a) 方法
方法定义:
public static <T> List<T> asList(T... a)
方法作用:
- 在
Arrays
工具类中则存在asList(T... a)
方法,
用于将数组转换为List
类型集合. - 在
Collection
接口中存在一个toArray(T[] a)
方法,
用于将指定集合转化为Object
类型数组.
- 在
注意事项:
- 由该方法返回的
List
集合大小是固定的, 不能进行增删操作.
但可以对里面的元素进行修改. - 因为该方法返回的
ArrayList
对象并非java.util.ArrayList
的对象,
而是Arrays
工具类中定义的一个同名内部类对象, 里面定义了不能修改.
- 由该方法返回的
使用实例:
List<String> stooges = Arrays.asList("Larry", "Moe", "Curly"); String[] strArr = {"a","b","c"}; List<String> strs = Arrays.asList(strArr);
1.1.2. toString() 方法
- 该方法用于返回指定数组内容的字符串表示形式.
1.2. Collections 类的常用方法
1.2.1. emptyList()/emptyMap()/emptySet() 方法
- 定义:
这三个方法都是静态方法, 用于返回一个空集合(不是null
). - 作用:
返回空的List/Map/Set
(都是不可变的). - 备注:
实际上从 Java7 开始, 新建的集合都是默认长度为 0 的.
1.2.2. addAll() 方法
- 定义:
public static <T> boolean addAll(Collection<? super T> c, T... elements)
- 作用:
将所有指定元素添加到指定collection
中,
可以分别指定要添加的元素, 或者将它们指定为一个数组.
1.2.3. binarySearch() 方法
定义:
public static <T> int binarySearch(List<? extends T> list, T key, Comparator<? super T> c)
作用:
使用二分搜索法搜索指定List
, 以获得指定对象在集合中的索引.备注:
二分查找前必须排序.
1.2.4. fill() 方法
- 定义:
public static <T> void fill(List<? super T> list, T obj)
- 作用:
使用指定元素替换指定列表中的所有元素.
1.2.5. shuffle() 方法
- 定义:
public static void shuffle(List<?> list)
- 作用:
使用默认随机源对指定列表进行置换,
所有置换发生的可能性都是大致相等的.
1.2.6. sort() 方法
- 定义:
public static <T> void sort(List<T> list, Comparator<? super T> c)
- 作用:
根据比较器规则进行排序. - 备注:
该方法还有自然排序版本.
1.2.7. synchronizedList()/synchronizedMap()/synchronizedSet() 方法
作用:
返回指定List/Map/Set
的同步(即线程安全)的List/Map/Set
.备注:
以List
为例, 当要进行迭代时, 必须手动在返回列表上进行同步.List list = Collections.synchronizedList(new ArrayList()); synchronized(list) { Iterator i = list.iterator(); // Must be in synchronized block while (i.hasNext()) foo(i.next()); }