java list 元素替换问题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java list 元素替换问题相关的知识,希望对你有一定的参考价值。

现有两个list list1和list2 两个list中都有一个名为a的元素,怎么把list1中a元素的值替换为list2的a元素的值

这个有点不是太清楚,list中名为a的元素,那就是a了,你说的是map中的a 替换吧,
那样list2.set('a',list1.get('a')),就可以了,
是不是类似这个意思,String a='123';
List<String> list1=new ArrayList<String>();
List<String> list2=new ArrayList<String>();
list1.add(a);
a='4567';
list2.add(a);
你想把list1中a元素的值替换为list2的a元素的值?这样其实是不行的,因为这里面的a相当于个中间引用,真正存进去的是‘123’和‘4567’,list1,list2里面存在的就只有这个值,没有a,这是由于java机制是值copy过去的,是不能这样使用的,你可以使用map
参考技术A List接口的常用方法有:

add(int index, E element) :将对象加入到指定位置处。

addAll(Collection<? extends E> c) :追加指定 collection 中的所有元素到此列表的结尾,顺序是指定 collection 的迭代器返回这些元素的顺序(可选操作)。

addAll(int index, Collection<? extends E> c) :将指定 collection 中的所有元素都插入到列表中的指定位置(可选操作)。

remove(int index) :移除某个位置上的元素。

remove(Object o) : 移除列表中出现的首个指定元素。

set(int index, E element) :用指定元素替换列表中指定位置的元素。

size() :返回列表大小。

常用的有两种List类型:ArrayList和LinkedList。
参考技术B 多层for循环呗

Java - 从列表中替换元素

我想用List<String>替换单个对象与多个对象。

List<String> list = new ArrayList<>(Arrays.asList("ROLL_NO","FULL_NAME","PERCENTAGE", "ADDRESS")); 

我想将“FULL_NAME”替换为“FIRST_NAME”和“LAST_NAME”。所以我的列表元素将如下

"ROLL_NO",
"FIRST_NAME", 
"LAST_NAME",
"PERCENTAGE", 
"ADDRESS"

Collections.replaceAll()方法仅替换为单个对象。

java8流有更好的方法吗?

提前致谢。

答案

删除FULL_NAME元素并将其替换为FIRST_NAMELAST_NAME元素:

    List<String> list = new ArrayList<>(Arrays.asList("ROLL_NO","FULL_NAME","PERCENTAGE", "ADDRESS")); 

    int index = list.indexOf("FULL_NAME");

    list.remove(index); //remove "FULL_NAME"

    list.add(index, "LAST_NAME");
    list.add(index, "FIRST_NAME");

请注意我添加它们的顺序。首先是LAST_NAME,然后是FIRST_NAME。这样做是因为在索引中设置元素会将该索引处的当前元素移动到列表的右侧。通过这样做,元素的顺序正如您在问题中所建议的那样。

另一答案

要解决您的问题,您可以使用remove()add()。但更好的方法是创建一个类来保存所有这些属性:

public class Person{
    private String rollNo;
    private String firstName;
    private String lastName;
    private double percentage;
    private String double;

    //your constructors, getters & setters
} 

然后使用ArrayList将各种Person对象作为一个集合保存在一起:

ArrayList<Person> list = new ArrayList<>();

这样,无论何时需要添加/删除整个记录,都不需要手动添加/删除所有相关属性,这很容易出错。

以上是关于java list 元素替换问题的主要内容,如果未能解决你的问题,请参考以下文章

Java - 从列表中替换元素

java集合问题(主要是8 9 10不会)

用啥方法可以替换掉 arraylist中的一个元素

Python 替换列表 list 及字符串中的元素

将list集合中部分元素替换成指定元素该怎么做

List 怎么替换指定的元素