ArrayList<String> strings=new ArrayList<String>();
strings.add("h");
strings.add("e");
strings.add("l");
strings.add("l");
strings.add("o");
下一个陈述是strings.add(strings.remove(strings.size()-1)+"C");
然后输出结果为[h,e,l,l,oC],
所以我想知道为什么strings.add(strings.remove(strings.size()-1)+"C")
得到了这个结果,
答案 0 :(得分:9)
strings.remove(strings.size()-1)
返回“o”,因为ArrayList.remove
会返回已删除的元素。然后将“o”与“C”连接,创建“oC”,将其添加到ArrayList
您可以将strings.add(strings.remove(strings.size()-1)+"C");
视为等同于:
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"]
答案 1 :(得分:3)
strings.remove()
returns the removed element to the calling place.
删除此列表中指定位置的元素(可选操作)。将任何后续元素向左移位(从索引中减去一个)。返回从列表中删除的元素。
在这种情况下,它会返回&#39; o&#39;。然后你用C&#39;连接它。 结果是&#34; oC&#34;
你的最后一句话是加上这个&#34; oC&#34;到strings
arraylist。