Java - 从列表中替换元素

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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 - 从列表中替换元素的主要内容,如果未能解决你的问题,请参考以下文章

结束一个片段

用另一个列表替换主活动中的列表并从视图中删除旧列表

Android,从其他片段返回的空列表视图

在活动中添加/替换后,片段的所有元素都为空

如何从主要活动中替换片段

从流输入中解析没有根元素的 XML 片段列表