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_NAME
和LAST_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 - 从列表中替换元素的主要内容,如果未能解决你的问题,请参考以下文章