Java 将对象流转换为属性的链接列表
我的目标是:使用Java 将对象流转换为属性的链接列表,java,lambda,java-8,java-stream,Java,Lambda,Java 8,Java Stream,我的目标是:使用Users的LinkedList,以优雅的Java-8方式提取他们用户名的LinkedList public static void main(String[] args) { LinkedList<User> users = new LinkedList<>(); users.add(new User(1, "User1")); users.add(new User(2, "User2")); users.add(new
User
s的LinkedList
,以优雅的Java-8方式提取他们用户名的LinkedList
public static void main(String[] args) {
LinkedList<User> users = new LinkedList<>();
users.add(new User(1, "User1"));
users.add(new User(2, "User2"));
users.add(new User(3, "User3"));
// Vanilla Java approach
LinkedList<String> usernames = new LinkedList<>();
for(User user : users) {
System.out.println(user.getUsername());
usernames.add(user.getUsername());
}
System.out.println("Usernames = " + usernames.toString());
// Java 8 approach
users.forEach((user) -> System.out.println(user.getUsername()));
LinkedList<String> usernames2 = users.stream().map(User::getUsername). // Is there a way to turn this map into a LinkedList?
System.out.println("Usernames = " + usernames2.toString());
}
static class User {
int id;
String username;
public User() {
}
public User(int id, String username) {
this.id = id;
this.username = username;
}
public void setUsername(String username) {
this.username = username;
}
public void setId(int id) {
this.id = id;
}
public String getUsername() {
return username;
}
public int getId() {
return id;
}
}
publicstaticvoidmain(字符串[]args){
LinkedList用户=新建LinkedList();
添加(新用户(1,“用户1”);
添加(新用户(2,“用户2”);
添加(新用户(3,“用户3”);
//普通Java方法
LinkedList用户名=新建LinkedList();
for(用户:用户){
System.out.println(user.getUsername());
usernames.add(user.getUsername());
}
System.out.println(“Usernames=“+Usernames.toString());
//Java8方法
users.forEach((user)->System.out.println(user.getUsername());
LinkedList usernames2=users.stream().map(User::getUsername)。//有没有办法将此映射转换为LinkedList?
System.out.println(“Usernames=“+usernames2.toString());
}
静态类用户{
int-id;
字符串用户名;
公共用户(){
}
公共用户(int-id,字符串用户名){
this.id=id;
this.username=用户名;
}
public void setUsername(字符串用户名){
this.username=用户名;
}
公共无效集合id(内部id){
this.id=id;
}
公共字符串getUsername(){
返回用户名;
}
公共int getId(){
返回id;
}
}
我无法将流
对象转换为链接列表
。我可以把它变成一个数组(Stream::toArray()
),然后把它变成一个列表(Arrays.asList(Stream::toArray())
),但看起来就是这样。。。不,谢谢
我遗漏了什么吗?您可以使用这样的收集器将结果放入链接列表中:
LinkedList<String> usernames2 = users.stream()
.map(User::getUsername)
.collect(Collectors.toCollection(LinkedList::new));
LinkedList usernames2=users.stream()
.map(用户::getUsername)
.collect(Collectors.toCollection(LinkedList::new));