迭代地对java中POJO对象列表中的每个元素的一个字段应用函数



我有一个对象列表。假设对象是这样的

Person: 
{
id
pwd
}

现在,我有一个修改pwd并返回修改后的字符串的函数。

public String modifyPwd(final String pwd) {
// Some operation
return modifiedPwd;
}

我想在Person对象列表的Person.pwd上迭代地应用modifyPwd()。

最终结果应该有一个Person对象列表,每个对象都包含未修改的idmodifiedPwd

有没有一种方法可以在不创建新列表和/或for循环的情况下使用流来做到这一点?

如果我正确理解了问题,您可能正在寻找这样的内容

public class App{
public static void main(String[] args) throws IOException {
List<Person> persons =
List.of(new Person("a", "pwd1"), new Person("b", "pwd2"), new Person("c", "pwd3"));
System.out.println(persons); //PRINTS [App.Person(id=a, pwd=pwd1), Trees.BST.Person(id=b, pwd=pwd2), Trees.BST.Person(id=c, pwd=pwd3)]
persons.stream().forEach(e -> e.pwd = e.pwd + "_modified");
System.out.println("Persons with modified passwords" + persons); //PRINTS [App.Person(id=a, pwd=pwd1_modified), App.Person(id=b, pwd=pwd2_modified), App.Person(id=c, pwd=pwd3_modified)]
}
@Setter
@Getter
@AllArgsConstructor
@ToString
public static class Person {
String id;
String pwd;
}
}

相关内容

  • 没有找到相关文章

最新更新