Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/337.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在java中将列表转换为映射_Java_List_Collections_Java 8 - Fatal编程技术网

在java中将列表转换为映射

在java中将列表转换为映射,java,list,collections,java-8,Java,List,Collections,Java 8,我在列表格式的列表中得到结果,我将对其进行处理以获得地图。 扭曲是指内部列表将包含两种不同类型的对象。类型为K的对象将位于索引0上,类型为V的另一个对象将位于索引1上 List<Object> lst = new ArrayList<>(); lst.add(new KeyObject()); lst.add(new ValueObject()); List<List> res = new ArrayList<>(); res.add(ls

我在列表格式的列表中得到结果,我将对其进行处理以获得地图。 扭曲是指内部列表将包含两种不同类型的对象。类型为K的对象将位于索引0上,类型为V的另一个对象将位于索引1上

List<Object> lst = new ArrayList<>();
lst.add(new KeyObject());  
lst.add(new ValueObject()); 

List<List> res = new ArrayList<>();
res.add(lst); 
现在我想使用Java8方法从上面的res列表构建一个Map。有什么建议吗?

假设res是您提到的类型列表,下面是如何获得您想要的结果:

Map<K, V> result = 
          res.stream()
             .collect(Collectors.toMap(e -> (K)e.get(0), e -> (V)e.get(1)));
其中K是键的实际类型,V是值的实际类型

假设res是您提到的类型列表,下面是如何获得您想要的结果:

Map<K, V> result = 
          res.stream()
             .collect(Collectors.toMap(e -> (K)e.get(0), e -> (V)e.get(1)));

其中K是键的实际类型,V是值的实际类型

的可能副本可能需要包含一些示例数据-这不是很容易理解。如果您能提供一个示例,那就太好了。所以这个问题可能已经得到了回答,这个问题可能会重复。在这种情况下,我建议使用好的旧迭代器。使用Java8流,您可以访问列表中的单个元素,而不是需要的两个元素。至少,如果不创建一些过于复杂的构造,就不能这样做。的可能副本可能需要包含一些示例数据-这不是很容易理解的。如果您能提供一个示例,那就太好了。所以这个问题可能已经得到了回答,这个问题可能会重复。在这种情况下,我建议使用好的旧迭代器。使用Java8流,您可以访问列表中的单个元素,而不是需要的两个元素。至少,不是没有创建一些过于复杂的构造。@ZhekaKozlov不。。。OP明确表示,我将以列表格式获得结果,我将对其进行处理以获得地图。。也许他们没有权利改变他们得到的结果。我相信文章中的例子只是为了简化事情,更好地说明文章的描述。如果有人使用你的解决方案,这将是一个问题,因为1你事先不知道结果的大小,2你必须手动将每一对放入地图。@ZhekaKozlov无论如何,最终我解决了一个被问到的问题,那就是如何获取列表并将其转化为地图。没别的了。没错,你是对的。我的解决方案是列表而不是列表。我删除了它。@ZhekaKozlov不。。。OP明确表示,我将以列表格式获得结果,我将对其进行处理以获得地图。。也许他们没有权利改变他们得到的结果。我相信文章中的例子只是为了简化事情,更好地说明文章的描述。如果有人使用你的解决方案,这将是一个问题,因为1你事先不知道结果的大小,2你必须手动将每一对放入地图。@ZhekaKozlov无论如何,最终我解决了一个被问到的问题,那就是如何获取列表并将其转化为地图。没别的了。没错,你是对的。我的解决方案是列表而不是列表。我把它删掉了。