Java計(jì)數(shù)數(shù)組中每個(gè)項(xiàng)目的出現(xiàn)次數(shù)是否有任何方法可以計(jì)算數(shù)組上每個(gè)項(xiàng)目的出現(xiàn)次數(shù)?讓我們說:String[] array = {"name1","name2","name3","name4", "name5"};這里的輸出將是:name1 1name2 1name3 1name4 1name5 1如果我有:String[] array = {"name1","name1","name2","name2", "name2"};輸出將是:name1 2
name2 3這里的輸出只是為了證明預(yù)期的結(jié)果。
3 回答

楊__羊羊
TA貢獻(xiàn)1943條經(jīng)驗(yàn) 獲得超7個(gè)贊
您可以使用MultiSet
來自Google Collections / Guava或Bag
來自Apache Commons的。
如果您有一個(gè)集合而不是一個(gè)數(shù)組,您可以使用addAll()
將整個(gè)內(nèi)容添加到上面的數(shù)據(jù)結(jié)構(gòu),然后將該count()
方法應(yīng)用于每個(gè)值。A SortedMultiSet
或SortedBag
將按照定義的順序?yàn)槟峁┪锲贰?/p>
Google Collections實(shí)際上有非常便捷的方式從數(shù)組轉(zhuǎn)到SortedMultiset
。

鴻蒙傳說
TA貢獻(xiàn)1865條經(jīng)驗(yàn) 獲得超7個(gè)贊
List asList = Arrays.asList(array);Set<String> mySet = new HashSet<String>(asList);for(String s: mySet){ System.out.println(s + " " +Collections.frequency(asList,s));}
添加回答
舉報(bào)
0/150
提交
取消