如何更改java集合选中的位置

时间:2013-11-20 15:25:41

标签: java collections

我正在使用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项已更改”

请帮忙。感谢名单。

5 个答案:

答案 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)

我可以想到两种方式:

  1. 较短的一个是Collections.replaceAll(List<T> list, T oldVal, T newVal)函数,它会将所有oldVal替换为newVal

    Collections.replaceAll(myList, "item 3", "item 3 changed");
    
  2. 另一个是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");