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);

面试题:CollectionCollections的区别.

-----------------------------------------------------------------------------

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());

-----------------------------------------------------------------------------------

 

版权声明:
作者:yfeer
链接:https://yfeer.com/806.html
来源:个人编程学习网
文章版权归作者所有,未经允许请勿转载。

THE END
分享
二维码
< <上一篇
下一篇>>