Java TreeMap复制关键点,并且不';不要把价值放在心上
f是一个链接列表,其中包含文本的不同单词。我试图分析该列表,并将所有内容放在一个树形图(m)中,以单词作为键,以单词的数量作为值。 我的代码以某种方式工作,但不是100%。例如,它产生一个输出(m),例如“Er”=6,在这里,第二个“Er”没有赋值,也没有以某种方式添加到第一个“Er”键Java TreeMap复制关键点,并且不';不要把价值放在心上,java,dictionary,treemap,Java,Dictionary,Treemap,f是一个链接列表,其中包含文本的不同单词。我试图分析该列表,并将所有内容放在一个树形图(m)中,以单词作为键,以单词的数量作为值。 我的代码以某种方式工作,但不是100%。例如,它产生一个输出(m),例如“Er”=6,在这里,第二个“Er”没有赋值,也没有以某种方式添加到第一个“Er”键 public void analysiere(){ int value=1; for(String word: f){ int check=0; if(Char
public void analysiere(){
int value=1;
for(String word: f){
int check=0;
if(Character.isAlphabetic(word.charAt(0))){
for(String schlüssel: key){
if(word.equals(schlüssel)){
m.put(schlüssel,m.get(schlüssel)+1);
check=1;
}
}
if(check==0) {
m.put(word, value);
}
}
}
}
让我们稍微简化一下代码:
public void analysiere(List<String> words, Map<String, Integer> m) {
for (String word : words) {
if (Character.isAlphabetic(word.charAt(0))) {
if (m.containsKey(word)) {
m.put(word, m.get(word) + 1);
} else {
m.put(word, 1);
}
}
}
}
public void analysiere(列出单词,地图m){
for(字符串字:字){
if(Character.isAlphabetic(word.charAt(0))){
if(m.containsKey(word)){
m、 put(字),m.get(字)+1;
}否则{
m、 put(单词,1);
}
}
}
}
您不需要
check
变量,因为您已经使用if
运算符检查了相同的逻辑条件。老实说,我不理解您的代码-尝试回答@Sergey的问题。
我能想到的最简单的方法是:
f.stream()
.filter(word -> Character.isAlphabetic(word.charAt(0)))
.forEach(word-> {
Integer currentNumber = m.getOrDefault(word,0);
currentNumber++;
m.put(word, currentNumber);
});
代码中的“key”变量是什么?Set key=m.keySet();这是地图的钥匙集嘿,谢谢你的回答!我之所以使用check变量,是因为if正在遍历键,因此无法更改它(编译器就是这么说的)。您的代码提供与我的代码完全相同的输出。问题仍然存在:/@DiesDasAlex,您能否将示例“错误”输出添加到原始问题中?我相信某个地方的字符集/字母表有问题。