我正在将人员列表传递给本地方法。在这种方法中,我通过传递的列表流并创建一个新列表。我担心的是,如果我为新创建的列表进行更新,则会影响传递的列表。我正在发送一段代码。如何维护传递列表的可变性。
private void checkMutable(List<person> personList) {
List<person> personNewList = personList.stream()
.map(person->person)
.collect(Collectors.toList());
personNewList.stream().forEach(p -> {
p.setEmail("ccc@gmail.com");
p.setName("ccc");
});
personList.stream().forEach(p -> {
System.out.println("name : " + p.getName() + " --- " + "name : " + p.getEmail());
});
答案 0 :(得分:0)
对于您而言,在创建新人员列表(personNewList)
时,您可以返回Person
返回相同人员实例的新实例。
我在Person
类中添加了以下方法
public static Person copyOf(Person person) {
return new Person(person.getEmail(),person.getName());
}
并在filter
谓词中使用此方法来创建Person
的新实例
List<Person> personNewList = personList.stream().map(person ->
Person.copyOf(person)).collect(Collectors.toList());
如果您确实想使Person
类可变,请遵循以下link