Java中計(jì)算集合中元素的出現(xiàn)次數(shù)統(tǒng)計(jì)
使用Collections類來計(jì)算集合中元素的出現(xiàn)次數(shù)
在Java中,你可以使用Collections
類配合HashMap
來統(tǒng)計(jì)集合中元素的出現(xiàn)次數(shù)。以下是一個(gè)示例:
import java.util.*; public class Main { public static void main(String[] args) { List<String> list = Arrays.asList("apple", "banana", "apple", "orange", "banana", "banana"); // 使用LinkedHashMap以保持插入順序 Map<String, Integer> countMap = new LinkedHashMap<>(); // 遍歷列表并統(tǒng)計(jì)每個(gè)元素的出現(xiàn)次數(shù) for (String item : list) { countMap.put(item, countMap.getOrDefault(item, 0) + 1); } // 打印結(jié)果 for (Map.Entry<String, Integer> entry : countMap.entrySet()) { System.out.println(entry.getKey() + " : " + entry.getValue()); } } }
在這個(gè)示例中,我們首先創(chuàng)建了一個(gè)包含重復(fù)元素的列表。然后,我們創(chuàng)建了一個(gè)LinkedHashMap
來存儲(chǔ)每個(gè)元素及其出現(xiàn)次數(shù)。我們使用getOrDefault
方法獲取當(dāng)前元素的出現(xiàn)次數(shù)(如果元素尚未在映射中,則返回默認(rèn)值0),然后將其加1。最后,我們遍歷映射并打印每個(gè)元素及其出現(xiàn)次數(shù)。
注意,我們使用LinkedHashMap
而不是普通的HashMap
,是因?yàn)?code>LinkedHashMap會(huì)保持插入順序。如果你不關(guān)心元素的插入順序,那么可以使用HashMap
。
java lamb 計(jì)算集合中元素的出現(xiàn)次數(shù)
在Java中,你可以使用Stream API和lambda表達(dá)式來更簡(jiǎn)潔地計(jì)算集合中元素的出現(xiàn)次數(shù)。這里是一個(gè)使用Java 8及以上版本的例子:
import java.util.*; import java.util.function.Function; import java.util.stream.Collectors; public class Main { public static void main(String[] args) { List<String> list = Arrays.asList("apple", "banana", "apple", "orange", "banana", "banana"); // 使用Stream API和lambda表達(dá)式來計(jì)算元素的出現(xiàn)次數(shù) Map<String, Long> countMap = list.stream() .collect(Collectors.groupingBy(Function.identity(), Collectors.counting())); // 打印結(jié)果 countMap.forEach((item, count) -> System.out.println(item + " : " + count)); } }
在這個(gè)例子中,我們首先創(chuàng)建了一個(gè)包含重復(fù)元素的列表。然后,我們使用stream()
方法將列表轉(zhuǎn)換成一個(gè)流,接著使用collect
方法和Collectors.groupingBy
來根據(jù)元素本身(Function.identity()
)進(jìn)行分組,并使用Collectors.counting()
來計(jì)算每個(gè)分組的元素?cái)?shù)量。
Collectors.groupingBy
返回的是一個(gè)Map<K, List<T>>
,其中K
是元素的類型,T
也是元素的類型。然后,我們通過嵌套使用Collectors.counting()
來將每個(gè)分組的列表轉(zhuǎn)換為計(jì)數(shù)值。最終,我們得到一個(gè)Map<String, Long>
,其中鍵是集合中的元素,值是它們?cè)诩现谐霈F(xiàn)的次數(shù)。
最后,我們使用forEach
方法來遍歷這個(gè)映射并打印每個(gè)元素及其出現(xiàn)次數(shù)。
這種方法比使用傳統(tǒng)的for循環(huán)和HashMap
更加簡(jiǎn)潔和易讀。
到此這篇關(guān)于Java中計(jì)算集合中元素的出現(xiàn)次數(shù)統(tǒng)計(jì)的文章就介紹到這了,更多相關(guān)Java集合元素次數(shù)統(tǒng)計(jì)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- JAVA統(tǒng)計(jì)字符串中某個(gè)字符出現(xiàn)次數(shù)的方法實(shí)現(xiàn)
- Java案例使用集合方法實(shí)現(xiàn)統(tǒng)計(jì)任意字符串中字符出現(xiàn)的次數(shù)
- Java實(shí)現(xiàn)統(tǒng)計(jì)字符串出現(xiàn)的次數(shù)
- Java統(tǒng)計(jì)一個(gè)字符串在另外一個(gè)字符串出現(xiàn)次數(shù)的方法
- Java統(tǒng)計(jì)英文句子中出現(xiàn)次數(shù)最多的單詞并計(jì)算出現(xiàn)次數(shù)的方法
- Java統(tǒng)計(jì)字符串中字符出現(xiàn)次數(shù)的方法示例
- Java編程實(shí)現(xiàn)統(tǒng)計(jì)數(shù)組中各元素出現(xiàn)次數(shù)的方法
- java統(tǒng)計(jì)字符串中重復(fù)字符出現(xiàn)次數(shù)的方法
相關(guān)文章
java使用Socket實(shí)現(xiàn)文件上傳功能
這篇文章主要為大家詳細(xì)介紹了java使用Socket實(shí)現(xiàn)文件上傳功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-02-02java數(shù)組與以逗號(hào)分隔開的字符串的相互轉(zhuǎn)換操作
這篇文章主要介紹了java數(shù)組與以逗號(hào)分隔開的字符串的相互轉(zhuǎn)換操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2020-09-09Mybatis如何從數(shù)據(jù)庫中獲取數(shù)據(jù)存為List類型(存為model)
這篇文章主要介紹了Mybatis如何從數(shù)據(jù)庫中獲取數(shù)據(jù)存為List類型(存為model),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-01-01Spring中@Scheduled和HttpClient的連環(huán)坑
這篇文章主要給大家介紹了關(guān)于Spring中@Scheduled和HttpClient的連環(huán)坑,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。2018-03-03Spring請(qǐng)求路徑帶參數(shù)URL使用注解的寫法說明
這篇文章主要介紹了Spring請(qǐng)求路徑帶參數(shù)URL使用注解的寫法說明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-08-08mybatis中批量更新多個(gè)字段的2種實(shí)現(xiàn)方法
當(dāng)我們使用mybatis的時(shí)候,可能經(jīng)常會(huì)碰到一批數(shù)據(jù)的批量更新問題,因?yàn)槿绻粭l數(shù)據(jù)一更新,那每一條數(shù)據(jù)就需要涉及到一次數(shù)據(jù)庫的操作,本文主要介紹了mybatis中批量更新多個(gè)字段的2種實(shí)現(xiàn)方法,感興趣的可以了解一下2023-09-09