黑马程序员---Map集合学习笔记

Map集合学习笔记

(一)Map集合存储键值对,一对一对的存,而且要保证键的唯一性。

(二)HashTable:底层是哈希表数据结构,不可存入null键和null值,线程同步。HashMap:则允许使用null键和null值,线程不同步。TreeMap:底层二叉树,线程不同步,可以给map集合中的键进行排序。

(三)Set集合底层就是使用了map集合

(四)Map的取出方式。1keySet()得到所有key   2entrySet()

package cn.cx.collection.study;

import java.util.*;

import java.util.Map.Entry;

publicclass MapDemo01 {

    publicstaticvoid main(String[] args) {

       HashMap<Integer,String> hm = new HashMap<Integer,String>();

       hm.put(0, "java01");

       hm.put(1, "java02");

       hm.put(2, "java03");

       hm.put(3, "java04");

       //Map.Entry me = (Map.Entry)hm.entrySet();

       /*Set<Integer> s = hm.keySet();

       for(Integer i : s) {

           System.out.println(hm.get(i));

       }*/

       Set<Map.Entry<Integer, String>> entrySet = hm.entrySet();

       Iterator<Map.Entry<Integer, String>> it = entrySet.iterator();

       while(it.hasNext()) {

           Map.Entry<Integer, String> me = it.next();

           System.out.println(me.getKey()+"=="+me.getValue());

       }

    }

 

(六)Map.Entry 其实Entry也是一个接口,它是Map接口中的一个内部接口。

(七)HashMapTreeMap保持元素唯一性的方式同HashSetTreeSet。即通过hashCodehash  equalshash  compareToTree)方法

(八)练习:获取字符串中字母出现的次数。

package cn.cx.collection.study;

import java.util.*;

import java.util.Map.Entry;

publicclass GetLetterNum {

    publicstaticvoid main(String[] args) {

       String str = "aaadddhkklhccabnmd";

       //System.out.println(getLetterNum(str));

       Map<Character, Integer> map = getLetterNum(str);

       StringBuilder sb = new StringBuilder();

       Set<Map.Entry<Character, Integer>> set = map.entrySet();

       Iterator<Map.Entry<Character, Integer>> it = set.iterator();

       while(it.hasNext()) {

           Map.Entry<Character, Integer> me = it.next();

           Character key = me.getKey();

           Integer value = me.getValue();

           sb.append(key+"("+value+"), ");

       }

       System.out.println(sb);

    }

    publicstatic Map<Character, Integer> getLetterNum(String str) {

      

       Map<Character, Integer> map = new TreeMap<Character, Integer>();

      

       char[] chs = str.toCharArray();

       for(int i=0; i<chs.length; i++) {

      

           Integer value = map.get(chs[i]);

           if(value == null) {

              map.put(chs[i], 1);

           } else {

              value = value + 1;

              map.put(chs[i], value);

           }

          

       }

       return map;

    }

(九) 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值