JAVAHashMap,如何使代码更有效?
不久前我开始学习Java,现在我从老师那里得到了一个有趣的任务。我将非常感谢所有能帮助我的人。我不想直接得到我问题的答案,我想看看有什么方法可以帮助我理解核心 这是我的代码片段 更高,我有一些文本(字符串)被转换为列表JAVAHashMap,如何使代码更有效?,java,hashmap,Java,Hashmap,不久前我开始学习Java,现在我从老师那里得到了一个有趣的任务。我将非常感谢所有能帮助我的人。我不想直接得到我问题的答案,我想看看有什么方法可以帮助我理解核心 这是我的代码片段 更高,我有一些文本(字符串)被转换为列表 List<String> list = Arrays.asList( text.split( " ")); Map<String, Integer> hashMap = new HashMap<>(); int uniqueWords = 0
List<String> list = Arrays.asList( text.split( " "));
Map<String, Integer> hashMap = new HashMap<>();
int uniqueWords = 0;
for (String word: list){
Integer count = hashMap.get(word);
hashMap.put(word, count == null ? 1 : count + 1);
if (count == null){
uniqueWords++;
}else if (count == 1){
uniqueWords --;
}
}
List List=Arrays.asList(text.split(“”));
Map hashMap=新hashMap();
int uniqueWords=0;
for(字符串字:列表){
整数计数=hashMap.get(word);
put(word,count==null?1:count+1);
如果(计数=null){
uniqueWords++;
}否则如果(计数=1){
独特的词语--;
}
}
我需要更有效地编写代码。我想了好几天,没法更有效地编码了。我需要帮助)使用一套:
String text = "one two three one";
List<String> list = Arrays.asList( text.split( " "));
Set<String> uniqs = new HashSet<>();
uniqs.addAll(list);
System.out.println(uniqs.size()); // prints 3
String text=“一二三一”;
List=Arrays.asList(text.split(“”);
Set uniqs=new HashSet();
uniqs.addAll(列表);
System.out.println(uniqs.size());//印刷品3
仅仅从“理论”的角度来看,有很多东西:
if
语句,也可以使用switch
语句count==null
你可以先做hashMap.containsKey(word)。这没什么区别,只是口味的问题注:
列表有更多的“奇特”方式,比如使用索引of
,最新索引of
,子列表
。请详细说明您的要求。欢迎使用StackOverflow!让代码“更有效”到底是什么意思?你的老师告诉你需要改变什么了吗?只有一个,要做得更有效(这段代码)这就是全部保持一个明确的唯一单词的运行计数没有特别的意义,因为该计数将始终等于地图中的条目数,即它的size()
。这也没有任何好处(出于你的目的)将String.split()的结果包装到列表中
;您可以直接在结果上迭代,而不是使用String[]
。我认为,首先使用containskey()
会损害性能,因为如果找到,您需要调用get()
,然后再进行一次查找。现在的问题是效率。