java 数组 arraylist_从数组创建ArrayList

如果可以的话,用番石榴

值得指出的是,番石榴方式极大地简化了这些恶作剧:

使用

对于不可变的列表List il = ImmutableList.of("string", "elements");  // from varargsList il = ImmutableList.copyOf(aStringArray);

// from array

对于可变列表List l1 = Lists.newArrayList(anotherListOrCollection);    // from collectionList l2 = Lists.newArrayList(aStringArray);

// from arrayList l3 = Lists.newArrayList("or", "string", "elements"); // from varargs

还请注意其他类中其他数据结构的类似方法,例如Sets.

最吸引人的地方可能是减少由于仿制品的使用而造成的杂乱,例如使用番石榴。工厂方法允许大多数情况下推断类型。然而,自从Java 7与新的菱形操作符到达之后,这个论点就不那么站得住脚了。

但这并不是唯一的原因(而且Java 7还不是无处不在):速记语法也非常方便,方法初始化器(如上文所示)允许编写更有表现力的代码。您可以在一个番石榴调用中调用当前Java集合所需的2。

如果你不能.。

对于不可变的列表List l1 = Collections.unmodifiableList(Arrays.asList(anArrayOfElements));

List l2 = Collections.unmodifiableList(Arrays.asList("element1", "element2"));

请注意,返回的类型为asList()是List用混凝土ArrayList执行,但不是 java.util.ArrayList..它是一个内部类型,它模仿ArrayList但实际上直接引用传递的数组并使其“写入”(修改反映在数组中)。

它禁止通过某些ListAPI的方法是简单地扩展AbstractList(因此,不支持添加或移除元素),但是它允许调用set()覆盖元素。因此,这个列表并不是真正不可变的,而是调用asList()应该用Collections.unmodifiableList().

如果需要可变列表,请参见下一步。

对于可变列表

和上面一样,但是用一个实际的java.util.ArrayList:List l1  = new ArrayList(Arrays.asList(array));

// Java 1.5 to 1.6List l1b = new ArrayList<>(Arrays.asList(array));

// Java 1.7+List l2  = new ArrayList(Arrays.asList("a", "b"));

// Java 1.5 to 1.6List l2b = new ArrayList<>(Arrays.asList("a", "b"));       // Java 1.7+

教育目的:良好的手册方式// for Java 1.5+static  List arrayToList(final T[] array) {

final List l = new ArrayList(array.length);

for (final T s : array) {

l.add(s);

}

return (l);}// for Java 

final List l = new ArrayList(array.length);

for (int i = 0; i 

l.add(array[i]);

}

return (l);}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值