我正在使用Android应用程序。 我希望更改我的ArrayList更改选定的位置。
样品;
List<String> myList = new ArrayList<String>();
myList.add("item 1");
myList.add("item 2");
myList.add("item 3");
myList.add("item 4");
myList.add("item 5");
......
现在我想将“第3项”更改为“第3项已更改”
请帮忙。感谢名单。
答案 0 :(得分:3)
您的确切答案是:
MyList.set(2,"item 3 changed");
答案 1 :(得分:1)
如果您想更改List
以便值item3
的位置现在具有值item 3 changed
,您也可以这样做(事先不知道List
中的位置1}}):
String searchFor="item3";
String replacement="item 3 changed";
myList.set(myList.indexOf(searchFor), replacement);
但是,考虑到由于String
类的不可变性,String
实例的值不会更改,而List
将保留一个String
实例的值新的,不同的s1
实例。
换句话说,假设字符串List
位于item3
的第三个位置,其值为s1
。通过使用上面的代码,您不会更改String
的值,而是创建新的s2
item 3 changed
,将其赋值List
并将其分配给第三个位于{{1}}。
答案 2 :(得分:1)
我可以想到两种方式:
较短的一个是Collections.replaceAll(List<T> list, T oldVal, T newVal)
函数,它会将所有oldVal
替换为newVal
。
Collections.replaceAll(myList, "item 3", "item 3 changed");
另一个是ArrayList.set(index, E elm)
函数:它会在给定elm
处设置index
。你可以从ArrayList.indexOf(E)
函数获得哪些。
答案 3 :(得分:0)
你可以这样做:
myList.remove ("item 3"); // or myList.remove(2);
myList.add(2,"item 3 changed");
答案 4 :(得分:0)
使用set
方法
List<String> myList = new ArrayList<String>();
.....
myList.set(2,"item 3 changed");