当前位置: 代码网 > it编程>编程语言>Java > java基础之初始化ArrayList时直接赋值的4种方式总结

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

2024年07月24日 Java 我要评论
在java中,初始化arraylist时直接赋值有以下几种常见方式:构造器传入集合:list<string> list = new arraylist<>(arrays.asl

在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时直接赋值内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com