我不确定如何在吸气剂中创建浅表副本,以及如何使我们受益。
它仍然可以用作普通的吸气剂吗,因为只要我调用吸气剂方法,就可以检索该列表中的信息?
我为此担心,因为将来如果我打电话
my name is omar
living in whatever
g i j
和string [] l = lines.split('\n');
for(int i = 0; i < l.length; i++)
{
string [] oneLine= l[i].split(' ');
//and put the rest of the code here
}
它们会导致麻烦的不同输出。
我想这里有一个隐含的问题,
我已经考虑了一段时间了:
如下例所示,有些人会打电话给this.strings
以获取该列表中的信息(因为在这种情况下,它是私有的,所以我想它可以正常工作吗?),而其他人则继续打电话给{{1 }}或this.getStrings()
。
我是Java的初学者,因此所有这些似乎都能实现相同的结果,这使我感到困惑。
有人可以解释吗?很抱歉,如果措词不清楚。
下面提供了代码:
strings
某些程序员未实现:
this.strings
相反,他们这样做:
this.getStrings
答案 0 :(得分:0)
第一个代码返回strings
的浅表副本。返回的参考与ArrayList
中存储的参考指向strings
的同一对象。通过它们两者所做的更改将影响同一对象。
第二个代码创建一个ArrayList
的新对象,并返回指向它的引用。新对象与字符串中的List
具有相同的元素。
ArrayList(Collection c) 构造一个包含指定集合元素的列表,其顺序由集合的迭代器返回。
创建了一个新对象,因此返回的List
中的更改不会影响List
中的strings
。