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

为IntStream生成直方图映射会引发编译时错误

子车凯泽
2023-03-14

我对构建哈夫曼编码原型感兴趣。为此,我想首先生成一个组成输入Java字符串的字符直方图。我在SO和其他地方看到了许多解决方案(例如:这里依赖于使用流的collect()方法以及函数的静态导入。identity()和收集器。以非常具体和直观的方式计数()。

但是,当使用与我上面链接的代码非常相似的一段代码时:

private List<HuffmanTrieNode> getCharsAndFreqs(String s){
        Map<Character, Long> freqs = s.chars().collect(Collectors.groupingBy(Function.identity(), Collectors.counting()));
        return null;
}

我从Intellij收到一个编译时错误,它告诉我没有符合供应商类型的参数来收集,这是其签名所要求的:

不幸的是,我是Java8流层次结构的新手,我不完全确定对我来说最好的行动方案应该是什么。事实上,对于我正在尝试做的事情来说,采用Map的方式可能过于样板;如果是这样,请告知。

暂时还没有答案

 类似资料:
  • 以下代码 由IntelliJ转换为: 可以缩短为 这两个流版本不编译。 IntelliJ,暗示值中的i存在问题[i]: 不兼容的类型 必需:int找到:java。lang.对象 编译器抱怨: 错误:(35,17)java:接口java中的方法collect。util。流动IntStream不能应用于给定类型 必需:java。util。作用供应商,爪哇。util。作用ObjIntConsumer,j

  • 我有一小段代码,用于计算给定数组中的正值、负值和零值的数量。使用Java 7,通过迭代数组并计算正值、负值和零值的数量,我可以轻松地做到这一点。但对于Java 8流,在map函数中写入条件是否正确?目前,此代码只迭代一次,并跳过数组的其余值。

  • 问题内容: 我有一个带有此签名的方法: 并使用此方法(在子类中)调用: 我收到此编译器警告: 将参数更改为未生成的Map会删除编译器警告。为什么会这样以及如何避免(除了抑制)? 编辑:这是JDK 1.5,第136行是上面的赋值语句。 这两个类都不是参数化的 ,它们仅具有返回通用类型的Map的方法。方法中返回的对象也被泛化。 编辑:超类确实是泛型的,尽管返回值与这些泛型无关。这是该方法的代码,尽管有

  • 所以当我不使用我的maven实现时,我在编译我的应用程序时遇到了麻烦。它将编译没有任何麻烦与maven-gwt-plugin。 我收到的错误表示生成器无法获取其请求的类信息: 显然,该类存在并在maven实现中工作。我不明白为什么在使用eclipse“Java应用程序”运行配置进行标准构建时它不起作用。以下是我的跑步配置的设置: 有人知道这是怎么回事吗?

  • 问题内容: 我正在尝试将此JPA QL转换为条件构建器。JBoss 6.0。 我根据一些教程编写了此代码。 但是,我在一行中遇到了一个编译错误: 错误是: 问题答案: 好吧,我终于找到了调用gt()方法的正确方法。这是完整的解决方案。在JBoss 6中经过全面测试。

  • 我刚开始使用React-Native。我尝试使用在我的应用程序中添加google map 我参考了https://github.com/react-community/react-native-maps/blob/master/docs/installation.md并按照所有步骤操作。我获得Google API并将其放入AndroidManifest。我的Google Play服务版本是14.5