将List转换为List>仅使用java8 lambdas
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了将List转换为List>仅使用java8 lambdas,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1850字,纯文字阅读大概需要3分钟。
内容图文
我有List< User>其中User是一个具有变量id,name,date的类.我只想创建一个List< List< String>>使用它,它只包含第一个列表中的名称和日期.我的代码
import java.util.*;
import java.util.stream.*;
public class User
{
int id;
String name;
Date date;
public User(int id,String name,Date date){
this.id=id;
this.name=name;
this.date=date;
}
public static void main(String[] args)
{
User one=new User(1,"a",new Date());
User two=new User(2,"b",new Date());
User three=new User(3,"c",new Date());
List<User> userList=Arrays.asList(one,two,three);
System.out.println(userList);
List<List<String>> stringList = IntStream.range(0,userList.size())
.maptoObj(i -> Array.asList(userList.get(i).name,userList.get(i).date))
.collect(toList);
System.out.print(stringList);
}
}
我似乎无法弄清楚当我使用collect()时我怎么能实现它,它说无法在收集时找到符号.有什么办法可以获得List< List< String>>包含列表< User>中的名称和日期列表
我也试过了
List<List<String>> stringList = IntStream.range(0,userList.size())
.map(i -> Arrays.asList(userList.get(i).name,userList.get(i).date.toString()))
.collect(Collectors.toList());
但它给了我
error:
no instance(s) of type variable(s) T exist so that List<T> conforms to int
where T is a type-variable:
T extends Object declared in method <T>asList(T...)incompatible types: bad return type in lambda expression
.map(i -> Arrays.asList(userList.get(i).name,userList.get(i).date.toString()))
^
Note: Some messages have been simplified; recompile with -Xdiags:verbose to get full output
1 error
谢谢
解决方法:
您不需要使用IntStream.
List<List<String>> output =
userList.stream()
.map (u -> Arrays.asList (u.name,u.date.toString()))
.collect (Collectors.toList());
编辑:
如果您希望继续使用IntStream解决方案:
List<List<String>> stringList =
IntStream.range(0,userList.size())
.mapToObj(i -> Arrays.asList(userList.get(i).name,userList.get(i).date.toString()))
.collect(Collectors.toList());
内容总结
以上是互联网集市为您收集整理的将List转换为List>仅使用java8 lambdas全部内容,希望文章能够帮你解决将List转换为List>仅使用java8 lambdas所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。