我尝试获取对ArrayList元素的引用,但是我失败了.
ArrayList<String> test = new ArrayList<String>();
test.add("zero");
test.add("one");
test.add("two");
String s1 = test.get(1);
String s2 = test.get(1);
System.out.println(test.get(1) +" " + s1 + " " + s2);
s1 += " modificated";
System.out.println(test.get(1) +" " + s1 + " " + s2);
Run Code Online (Sandbox Code Playgroud)
有什么建议?
你不能用Java做到这一点.你所做的就是从中获取价值ArrayList.该值是一个引用,但它是Java术语中的引用,与C++中的引用不完全相同.
该参考值被复制到s1,之后完全独立于该值ArrayList.当您更改s1此行的值以引用此行中的新字符串时:
s1 += "modificated";
Run Code Online (Sandbox Code Playgroud)
这根本不会改变价值ArrayList.
现在,如果您使用的是类似的可变类型StringBuilder,则可以使用:
StringBuilder builder = list.get(0);
builder.append("more text");
System.out.println(list.get(0)); // Would include "more text"
Run Code Online (Sandbox Code Playgroud)
在这里,您不会更改- 仍然只是参考 - 中的值,ArrayList但您正在更改值引用的对象中的数据.
| 归档时间: |
|
| 查看次数: |
23226 次 |
| 最近记录: |