当前位置: 首页 > 知识库问答 >
问题:

为什么我们必须将Collectors.ToList()返回的列表强制转换为List,尽管流的元素已经映射到integer?[副本]

厍和颂
2023-03-14

我将原始的映射到,然后将元素收集到列表

List list = Arrays.asList("test", "test2");
List<Integer> lengths = (List<Integer>) list.stream()
                                            .map(str -> ((String)str).length())
                                            .collect(Collectors.toList());

如果不使用原始列表,则不需要强制转换:

List<String> list = Arrays.asList("test", "test2");
List<Integer> lengths = list.stream()
                            .map(str -> str.length())
                            .collect(Collectors.toList());

共有1个答案

萧允晨
2023-03-14

对原始列表调用List.Stream()将生成原始。对该调用映射不会将该更改为泛型。它将其更改为另一个原始。因此,当您调用collectors.tolist())时,您将得到一个原始的列表并必须将其强制转换为(List )

结论:不要使用生型。

 类似资料:
  • 在Scala表示法中,是一个函数,它接受任何类型并将其映射到所有列表类型集合中的一个类型,例如它将类型映射到类型并映射上的函数 到 到 现在,的每个实例都是一个monoid,具有函数(在Haskell中为)和函数(在Haskell中为)。我的猜测是,可以使用列表是单ID这一事实来说明必须映射列表的所有元素。我在这里的感觉是,如果从Applicative中添加函数,就会得到一个列表,其中只有一个其他

  • 我是Mapstruct的新手。我试图将列表转换为地图,我在网上搜索了很多,我有一些解决方案,比如它还没有在mapstruct中实现。如果有人能提供一些替代解决方案,我将很高兴。所有我希望转换映射如下: 现在是否可以使用MapStruct来实现?

  • 我目前正在使用平铺地图为pyplay中的一个游戏开发地图编辑器。关卡由以下结构中的块构建而成(尽管要大得多): 其中“1”是一块墙,“0”是一块空空气。 以下代码基本上是处理块类型更改的代码:

  • 本文向大家介绍Java 将Map映射转换为 List,包括了Java 将Map映射转换为 List的使用技巧和注意事项,需要的朋友参考一下 首先,让我们创建一个Java Map并初始化- 现在,将Map转换为List- 示例 以下是在Java中将Maps转换为List的程序- 输出结果

  • 我有下面的pojo 此employee类用于从mybatis orm获取对象列表(list)。 mybatis将输出作为列表返回,因为mybatis不支持将Map作为返回类型 我必须把它转换成地图 我尝试了下面的方法,但没有成功,因为它需要getName()和getId()方法 请告知是否有一种方法可以在不修改员工pojo的情况下使用stream实现。 注意:我知道我们可以使用ofr或for ea

  • 我有一个包含两个重要属性的列表,和。实例可以共享值,但具有唯一的s。 我想把这个List转换成一个Map,这样共享一个Bar的所有实例的唯一的都被放在映射到那个共享的的Set中。 我自己的功能印章还没有被证明能胜任这项任务。我试图同时和List,但是当试图将不同的参数实现为lambdas时,被类型问题绊倒了。 尝试使用Collect 不完整,编译器无法确定m或foo和Foo::getBaz的类型。