Lambda:筛选器列表::列表::获取[0]非静态错误:可选
Lambda:筛选器列表::列表::获取[0]非静态错误:可选,lambda,java-8,java-stream,Lambda,Java 8,Java Stream,Map使用java8lamdacollect(Collectors.groupingBy(List::get[0]) 其中List::get[0]不能应用,因为非静态方法不能从静态内容中引用 任何简单的替代方案都可以达到同样的效果 这是我的密码 import java.util.Arrays; import java.util.List; import java.util.Map; import java.util.stream.Collectors; public class LamdaTe
Map
使用java8lamdacollect(Collectors.groupingBy(List::get[0])代码>
其中List::get[0]
不能应用,因为非静态方法不能从静态内容中引用
任何简单的替代方案都可以达到同样的效果
这是我的密码
import java.util.Arrays;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
public class LamdaTest
{
public static void main (String[] args) {
List<List<String>> lists = populateList();
Map<String, List<List<String>>> listMap = lists.stream()
.collect(Collectors.groupingBy(List::get(0)));
System.out.println(listMap);
}
public static List<List<String>> populateList (){
List<String> list =Arrays.asList("10","test10");
List<String> list2 =Arrays.asList("10","test10");
List<String> list3 =Arrays.asList("11","test11");
List<String> list4 =Arrays.asList("11","test11");
List<List<String>> lists = Arrays.asList(list,list2,list3,list4);
return lists;
}
}
在这种情况下不能使用方法引用,因此需要使用lambda表达式
Map<String, List<List<String>>> listMap = populateList().stream()
.collect(Collectors.groupingBy(l -> l.get(0)));
Map listMap=populateList().stream()
.collect(收集器.groupingBy(l->l.get(0));
在这种情况下不能使用方法引用,因此需要使用lambda表达式
Map<String, List<List<String>>> listMap = populateList().stream()
.collect(Collectors.groupingBy(l -> l.get(0)));
Map listMap=populateList().stream()
.collect(收集器.groupingBy(l->l.get(0));
您想要的输出是什么样子的?这是干什么用的?List::get[0]如果不是静态方法,您就不能使用它?@Flown:我希望Map
文件的分组输出保存在哪里map@Bolzano:List::get[0]
可以充当收集组,因为get[0]非静态I无法使用I您的预期输出看起来像一个映射
,因此,在这种情况下,您不应该flatMap
流内容,只需执行groupby(l->l.get(0))
。您想要的输出是什么样子的?这是为了什么?List::get[0]如果不是静态方法,您就不能使用它?@Flown:我希望Map
文件的分组输出保存在哪里map@Bolzano:List::get[0]
可以充当收集组,因为get[0]非静态I无法使用I您的预期输出看起来像一个映射
,因此,在这种情况下,您不应该flatMap
流内容,只需执行groupby(l->l.get(0))
。