gpt4 book ai didi

java - 更改 ArrayList> 中的 String 元素正在更改 ArrayList 中的两个列表

转载 作者:行者123 更新时间:2023-11-29 03:46:50 25 4
gpt4 key购买 nike

这是我使用的代码

    ArrayList<List<String>> sentanceParts = new ArrayList<List<String>>();

int i;

sentanceParts.add(Arrays.asList(sentance.split("\\s+")));
sentanceParts.add(sentanceParts.get(0));
System.out.printf( "%s\n", sentanceParts.get(1).get(0));

for( i = 0; i < sentanceParts.get(0).size(); i++ ){
sentanceParts.get(0).set(i,
sentanceParts.get(0).get(i).replaceAll( "[^aeiou]+", "" ));
System.out.printf( "%s:%d\n",
sentanceParts.get(1).get(i),
sentanceParts.get(0).get(i).length() );
}

它正在输出这个

Type a sentance for analysis...
test case
e:1
ae:2

应该是

Type a sentance for analysis...
test case
test:1
case:2

为什么我的代码没有这样做?我以为我设置的是 sentanceParts(0) 而不是 sentanceParts(1)

最佳答案

因为这一行:

sentanceParts.add(sentanceParts.get(0));

sentanceParts引用相同的 List<String>两次。

如果您想添加 List副本在元素 0 ,然后写:

sentanceParts.add(new ArrayList<String>(sentanceParts.get(0)));

关于java - 更改 ArrayList<List<String>> 中的 String 元素正在更改 ArrayList 中的两个列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10510164/

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