Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/318.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 为什么此语句在集合末尾添加字符? ArrayList strings=new ArrayList(); 字符串。添加(“h”); 字符串。添加(“e”); 字符串。添加(“l”); 字符串。添加(“l”); 字符串。添加(“o”);_Java_String_Arraylist - Fatal编程技术网

Java 为什么此语句在集合末尾添加字符? ArrayList strings=new ArrayList(); 字符串。添加(“h”); 字符串。添加(“e”); 字符串。添加(“l”); 字符串。添加(“l”); 字符串。添加(“o”);

Java 为什么此语句在集合末尾添加字符? ArrayList strings=new ArrayList(); 字符串。添加(“h”); 字符串。添加(“e”); 字符串。添加(“l”); 字符串。添加(“l”); 字符串。添加(“o”);,java,string,arraylist,Java,String,Arraylist,下一条语句是strings.add(strings.remove(strings.size()-1)+“C”) 那么输出结果是[h,e,l,l,oC] 所以我想知道为什么strings.add(strings.remove(strings.size()-1)+“C”)得到这个结果,strings.remove(strings.size()-1)返回“o”,因为ArrayList.remove返回被删除的元素。然后将“o”与“C”连接起来,创建“oC”,并将其添加到ArrayList的末尾 您可以

下一条语句是
strings.add(strings.remove(strings.size()-1)+“C”)

那么输出结果是[h,e,l,l,oC]

所以我想知道为什么
strings.add(strings.remove(strings.size()-1)+“C”)
得到这个结果,

strings.remove(strings.size()-1)
返回“o”,因为
ArrayList.remove
返回被删除的元素。然后将“o”与“C”连接起来,创建“oC”,并将其添加到
ArrayList的末尾

您可以考虑
strings.add(strings.remove(strings.size()-1)+“C”)等同于:

    ArrayList<String> strings=new ArrayList<String>();
    strings.add("h");
    strings.add("e");
    strings.add("l");
    strings.add("l");
    strings.add("o");
strings.remove()

删除此列表中指定位置的元素(可选操作)。将任何后续元素向左移动(从其索引中减去一个)。返回从列表中删除的元素

在本例中,它返回“o”。然后将其与“C”连接起来。 结果是“oC”


您的上一个声明是将此“oC”添加到
strings
arraylist。

不确定为什么对该问题的投票结果不清楚。您不明白该声明的哪一部分?请解释意外结果的原因。另外,在提问之前查阅文档也是很好的。这将有助于你提出更高质量的问题,甚至可以回答你自己的问题。这个答案与得票最多的答案有何不同?他们几乎是同时回答的。FGITWFTW@Michael我当时在手机上,所以我花了一点时间输入,而上面的答案已经出现了。谢谢你的回答。我现在明白了。谢谢你的回答。我现在明白了。
String s = strings.remove(strings.size()-1);
// s is now equal to "o"
// strings is equal to ["h", "e", "l", "l"]
s += "C";
// s is now equal to "oC"
strings.add(s);
// strings is equal to ["h", "e", "l", "l", "oC"]