我正在创建一个Word Comparison类,它也会计算单词的出现次数.(这是Java)
这是我原来的方法:
/**
* @param map The map of words to search
* @param num The number of words you want printed
* @return list of words
*/
public static List<String> findMaxOccurrence(Map<String, Integer> map, int num) {
List<WordComparable> l = new ArrayList<>();
for (Map.Entry<String, Integer> entry : map.entrySet())
l.add(new WordComparable(entry.getKey(), entry.getValue()));
Run Code Online (Sandbox Code Playgroud)
我的IDE建议循环和列表分配可以用"收集呼叫"替换:"stream api calls"
在其中生成此代码:
List<WordComparable> l =
map.entrySet().stream()
.map(entry -> new WordComparable
(entry.getKey(), entry.getValue())).collect(Collectors.toList());
Run Code Online (Sandbox Code Playgroud)
我对lambda数学如何工作感到困惑.如果我的内存正确, - >是每个循环,但其他调用完全令人困惑.
我的IDE还可以将代码扩展为这两个片段:
List<WordComparable> l =
map.entrySet().stream()
.map(entry -> {
return new WordComparable …Run Code Online (Sandbox Code Playgroud) 好吧,我正在阅读ASM4字节码库中的PDF教程/文档/书籍(如果你愿意的话).我正在尝试这些例子并通过阅读,实际输入代码,执行,然后从输出中学习来学习.我遇到了这个部分:
public class ClassPrinter extends ClassVisitor {
public ClassPrinter() {
super(ASM4);
}
Run Code Online (Sandbox Code Playgroud)
链接在这里: http://download.forge.objectweb.org/asm/asm4-guide.pdf
我无法弄清楚在超级中传递什么.我的IDE也不是很有帮助.