【java基础】map的基本使用与字符串中每个字符出现的次数统计
生活随笔
收集整理的這篇文章主要介紹了
【java基础】map的基本使用与字符串中每个字符出现的次数统计
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
Map集合概述和特點(diǎn)
Map集合概述
- interface Map<K,V> K:鍵的類型;V:值的類型
Map集合的特點(diǎn)
- 鍵值對(duì)映射關(guān)系
- 一個(gè)鍵對(duì)應(yīng)一個(gè)值
- 鍵不能重復(fù),值可以重復(fù)
- 元素存取無序
Map集合的基本使用
public class MapDemo01 {public static void main(String[] args) {//創(chuàng)建集合對(duì)象Map<String,String> map = new HashMap<String,String>();//V put(K key, V value) 將指定的值與該映射中的指定鍵相關(guān)聯(lián)map.put("趙麗穎","18");map.put("迪麗熱巴","28");//輸出集合對(duì)象System.out.println(map);}}Map集合的基本功能
| V put(K key,V value) | 添加元素 |
| V remove(Object key) | 根據(jù)鍵刪除鍵值對(duì)元素 |
| void clear() | 移除所有的鍵值對(duì)元素 |
| boolean containsKey(Object key) | 判斷集合是否包含指定的鍵 |
| boolean containsValue(Object value) | 判斷集合是否包含指定的值 |
| boolean isEmpty() | 判斷集合是否為空 |
| int size() | 集合的長(zhǎng)度,也就是集合中鍵值對(duì)的個(gè)數(shù) |
Map集合的獲取功能
| V get(Object key) | 根據(jù)鍵獲取值 |
| Set keySet() | 獲取所有鍵的集合 |
| Collection values() | 獲取所有值的集合 |
| Set<Map.Entry<K,V>> entrySet() | 獲取所有鍵值對(duì)對(duì)象的集合 |
Map集合的遍歷(方式1)
* 步驟分析* 獲取所有鍵的集合。用keySet()方法實(shí)現(xiàn)* 遍歷鍵的集合,獲取到每一個(gè)鍵。用增強(qiáng)for實(shí)現(xiàn) * 根據(jù)鍵去找值。用get(Object key)方法實(shí)現(xiàn)* 代碼實(shí)現(xiàn)public class MapDemo01 {public static void main(String[] args) {//創(chuàng)建集合對(duì)象Map<String, String> map = new HashMap<String, String>();//添加元素map.put("趙麗穎","18");map.put("迪麗熱巴","28");//獲取所有鍵的集合。用keySet()方法實(shí)現(xiàn)Set<String> keySet = map.keySet();//遍歷鍵的集合,獲取到每一個(gè)鍵。用增強(qiáng)for實(shí)現(xiàn)for (String key : keySet) {//根據(jù)鍵去找值。用get(Object key)方法實(shí)現(xiàn)String value = map.get(key);System.out.println(key + "," + value);}}}Map集合的遍歷(方式2)
* 步驟分析* 獲取所有鍵值對(duì)對(duì)象的集合* Set<Map.Entry<K,V>> entrySet():獲取所有鍵值對(duì)對(duì)象的集合* 遍歷鍵值對(duì)對(duì)象的集合,得到每一個(gè)鍵值對(duì)對(duì)象* 用增強(qiáng)for實(shí)現(xiàn),得到每一個(gè)Map.Entry* 根據(jù)鍵值對(duì)對(duì)象獲取鍵和值* 用getKey()得到鍵* 用getValue()得到值* 代碼實(shí)現(xiàn)public class MapDemo02 {public static void main(String[] args) {//創(chuàng)建集合對(duì)象Map<String, String> map = new HashMap<String, String>();//添加元素map.put("趙麗穎","18");map.put("迪麗熱巴","28");//獲取所有鍵值對(duì)對(duì)象的集合Set<Map.Entry<String, String>> entrySet = map.entrySet();//遍歷鍵值對(duì)對(duì)象的集合,得到每一個(gè)鍵值對(duì)對(duì)象for (Map.Entry<String, String> me : entrySet) {//根據(jù)鍵值對(duì)對(duì)象獲取鍵和值String key = me.getKey();String value = me.getValue();System.out.println(key + "," + value);}}}統(tǒng)計(jì)字符串中每個(gè)字符出現(xiàn)的次數(shù)
* 需求* 鍵盤錄入一個(gè)字符串,要求統(tǒng)計(jì)字符串中每個(gè)字符串出現(xiàn)的次數(shù)。* 舉例:鍵盤錄入“aababcabcdabcde” 在控制臺(tái)輸出:“a(5)b(4)c(3)d(2)e(1)” * 代碼實(shí)現(xiàn) public class HashMapDemo {public static void main(String[] args) {//鍵盤錄入一個(gè)字符串Scanner sc = new Scanner(System.in);System.out.println("請(qǐng)輸入一個(gè)字符串:");String line = sc.nextLine();//創(chuàng)建HashMap集合,鍵是Character,值是IntegerTreeMap<Character, Integer> wy = new TreeMap<Character, Integer>();//遍歷字符串,得到每一個(gè)字符for (int i = 0; i < line.length(); i++) {char key = line.charAt(i);//拿得到的每一個(gè)字符作為鍵到HashMap集合中去找對(duì)應(yīng)的值,看其返回值Integer value = wy.get(key);if (value == null) {//如果返回值是null:說明該字符在HashMap集合中不存在,就把該字符作為鍵,1作為值存儲(chǔ)wy.put(key,1);} else {//如果返回值不是null:說明該字符在HashMap集合中存在,把該值加1,然后重新存儲(chǔ)該字符和對(duì)應(yīng)的值value++;wy.put(key,value);}}//遍歷HashMap集合,得到鍵和值,按照要求進(jìn)行拼接StringBuilder sb = new StringBuilder();Set<Character> keySet = wy.keySet();for(Character key : keySet) {Integer value = wy.get(key);sb.append(key).append("(").append(value).append(")");}String result = sb.toString();//輸出結(jié)果System.out.println(result);} }總結(jié)
以上是生活随笔為你收集整理的【java基础】map的基本使用与字符串中每个字符出现的次数统计的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【工具类】时间相关的方法
- 下一篇: 【源码解析】hashMap源码跟进