java

关注公众号 jb51net

关闭
首页 > 软件编程 > java > java初始化ArrayList时直接赋值

java基础之初始化ArrayList时直接赋值的4种方式总结

作者:学亮编程手记

ArrayList是Java中的一个类,它是Java集合框架中的一部分,用于实现动态数组,下面这篇文章主要给大家介绍了关于java基础之初始化ArrayList时直接赋值的4种方式,文中通过代码介绍的非常详细,需要的朋友可以参考下

在Java中,初始化ArrayList时直接赋值有以下几种常见方式:

构造器传入集合:

List<String> list = new ArrayList<>(Arrays.asList("item1", "item2", "item3"));

或者在Java 9及以上版本中使用List.of()方法创建不可变列表:

List<String> list = new ArrayList<>(List.of("item1", "item2", "item3"));

使用匿名内部类(不常用且可能引起混淆,实际编程中很少这样用):

// 不推荐此做法,仅作展示
ArrayList<String> list = new ArrayList<String>() {{
    add("item1");
    add("item2");
    add("item3");
}};

注意:这种方式利用了匿名内部类的实例初始化块,但不是标准做法,因为它违反了“面向接口”的编程原则,且可能导致代码难以理解。

通过循环或流API填充:

// 循环添加
List<Integer> list = new ArrayList<>();
for (int i = 0; i < 5; i++) {
    list.add(i);
}

// Java 8+ 使用Stream API
List<Integer> list2 = Stream.of(1, 2, 3, 4, 5).collect(Collectors.toCollection(ArrayList::new));

使用addAll方法:

List<Integer> initialData = Arrays.asList(1, 2, 3);
List<Integer> list = new ArrayList<>();
list.addAll(initialData);

通常最常见的是方式一是直接在构造ArrayList时传入已有的集合,这种方式简洁高效。不过,如果初始数据较小并且已知,直接在声明时初始化也是最佳实践之一。对于较大的数据集或者动态生成的数据,使用循环或流API则更为灵活。

附:ArrayList两个对象之间的赋值

List<String> list1 = new ArrayList<String>();
List<String> list2 = new ArrayList<String>();
list1 = list2;

这种方法只是将list2的地址赋值给了list1。也就是list1的地址指向了list2的地址,也就是两个list相当于一个list,因为他们指向了同一个地址值。而原来的list1的原先对象会被垃圾回收机制回收掉。

正确的赋值方法是:

List <String> list1 = new ArrayList<String>();
//方法一:利用集合自带的构造方法
List<String> list2= new ArrayList<String>(list1);
//方法二:利用克隆的方法进行赋值
List<String> list2 =(ArrayList<String>) list1.clone();

总结

到此这篇关于java基础之初始化ArrayList时直接赋值的4种方式的文章就介绍到这了,更多相关java初始化ArrayList时直接赋值内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
阅读全文