gpt4 book ai didi

java - 通过 setter 更改 ArrayList 与更改后分配给自身之间的区别

转载 作者:太空宇宙 更新时间:2023-11-04 13:08:04 25 4
gpt4 key购买 nike

有人可以告诉我以下不同之处吗:

void change(List<String>strings){
strings.add("Hello");
}

List<String>newString(List<String>strings){
strings.add("Hello");
return strings;
}

List<String>strings = new ArrayList<String>();
change(strings);
/// The different?
List<String>strings = new ArrayList<String>();
strings = newString(strings);

最佳答案

void change(List<String>strings){
strings.add("Hello");
}

上面有一个void返回类型,因此这意味着该函数不返回任何内容。 strings.add("Hello");将简单地将字符串“Hello”添加到作为参数传入的字符串列表中。

List<String>newString(List<String>strings){
strings.add("Hello");
return strings;
}

上面有一个List<String>返回类型,因此必须返回该类型的对象。 strings.add("Hello");将简单地将字符串“Hello”添加到作为参数传入的字符串列表中。

那么 newString 之间的区别和change只是简单newString往List中添加一个字符串,然后返回传入的List,而change只是添加字符串,但不返回列表。

你可以:

List<String> newList;
List<String> otherList = new ArrayList<>();
newList = newString(otherList); // can do because List<String> return type
newList = change(otherList); // can't do because void return type

关于java - 通过 setter 更改 ArrayList 与更改后分配给自身之间的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34235879/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com