Java-集合的工具类
集合操作的工具类:
1):Arrays类:
2):Collections类.
---------------------------------------------------
Arrays类:
在Collection接口中有一个方法叫toArray把集合转换为Object数组.
把集合转换为数组: Object[] arr = 集合对象.toArray();
数组也可以转换为集合(List集合):
public static <T> List<T> asList(T... a) 等价于public static <T> List<T> asList(T[] a).
//把数组转换为List对象 List<String> list = Arrays.asList("A","B","C","D"); List<Date> list2 = Arrays.asList(new Date(),new Date());
通过Arrays.asList方法得到的List对象的长度是固定的,不能增,也不能减.
为什么: asList方法返回的ArrayList对象,不是java.util.ArrayList而是Arrays类中的内部类对象.
//可以自动装箱,把1看成是Integer对象 List<Integer> list1 = Arrays.asList(1,2,3,4,5); //定义了int类型的数组 int[] arr2 = {1,2,3,4,5}; //直接把数组当做是对象 List<int[]> list2 = Arrays.asList(arr2); System.out.println(list2);
面试题:Collection和Collections的区别.
-----------------------------------------------------------------------------
Collections类:封装了Set,List,Map的操作的工具方法.
获取空集对象(没有元素的集合,注意集合不为null):
List<Object> list1 = Collections.EMPTY.LIST;//常量 List<Object> list2 = Collection.emptylist();//方法 List<Object> list3 = new Arrays<>();//从java7开始,方法
常用的集合类:
HashSet/ArrayList/HashMap都是线程不安全的,在多线程环境下不安全.
在Collections类中有获取线程安全的集合方法:
List list = Collections.synchronizedList(new ArrayList());
当要做迭代的时候得使用synchronized.
synchronized(list) {
TODO
}
-----------------------------------------------------------------------------------
Set set = Collections.synchronizedSet(new HashSet());
Map map = Collections.synchronizedMap(new HashMap());
-----------------------------------------------------------------------------------
共有 0 条评论