gpt4 book ai didi

java - 将常规的 foreach 替换为流/lambda/方法引用

转载 作者:行者123 更新时间:2023-12-01 09:39:48 26 4
gpt4 key购买 nike

我有一个Class Foo有一个 Constructor设置nameid

在另一个Class我有一个List<String>我可以在其中提取 name 的消息和id .

我能够成功设置Constructor通过使用常规 foreach 循环遍历列表环形。如何使用 Stream 实现此目的Java 8LambdaMethod References

public class ConstructorTest {

public static void main(String[] args) {
List<Foo> fooList = new ArrayList<Foo>();
List<String> userList = new ArrayList<String>();
userList.add("username1_id1");
userList.add("username2_id2");
//I want to replace the below foreach loop with stream/lambda/methodreferences
for (String user : userList) {
Foo foo = new Foo(getName(user), getId(user));
fooList.add(foo);
}
}

private static String getName(String user) {
return user.split("_")[0];
}

private static String getId(String user) {
return user.split("_")[1];
}
}

Foo 类:

public class Foo {

public Foo(String name, String id) {
this.name = name;
this.id = id;
}

private String name;
private String id;

public String getName() {
return name;
}

public void setName(String name) {
this.name = name;
}

public String getId() {
return id;
}

public void setId(String id) {
this.id = id;
}

}

最佳答案

这个怎么样?

userList.stream().map(user -> new Foo(getName(user), getId(user)).forEach(userList::add)

或者这个

userList.forEach(user -> userList.add(new Foo(getName(user), getId(user))))

关于java - 将常规的 foreach 替换为流/lambda/方法引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38548306/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com