编程技巧 之 数组 与 集合的转换

来源:百度文库 编辑:神马文学网 时间:2024/06/13 08:37:29

这个...我有点郁闷...

感叹JDK的强大...

如果一个Set转成一个List很简单

Set s = new HashSet();

List l = new ArrayList(s);

这个是因为他们有共同的父类(或接口)

 

但是如果要把数组转换为一个集合...

那么就有点“绕”...

 我之前做的时候,自己想了,找了半天也没有结果...

后来发现

java.util.Arrays中...真的有这样的一个方法...

List   Arrays.asList(T...a);

(其中“...”是不定参数的意思,其实就是数组)

就一句,就返回了一个List

 

也就是说

数组转换为集合

List   Arrays.asList(T...a); 

(如果想转换为Set的话,和一开篇的时候是相同的)

集合转换为数组

T[]  toArray();

....

 

其实我有点“怀疑”...

为什么可以这样做呢?

我点F3进入源码...

神奇的一幕

List  asList(T...a){

   return new ArrayList(a);

}

拿一个数组构造一个ArrayList ??!!

我又翻了一下JDK,根本没有这个构造函数!

....

一看包名...

靠!内部类!

Arrays这个工具包,自己实现了一个ArrayList作为自己的内部类,其中的构造函数就是传入

一个数组...

 

哎,果然...自己还是有点笨...