java中Map杂记

Map接口:

1.将键映射到值的集合

2.是一个双列集合,一个键对应唯一一个值,键不可重复,只能重复。

3.键的类型为引用类型。

4.Map集合中没有迭代方法(iterator).

Map的功能概述:

1.添加:

V put(K key,V value)

在键第一次存储时,返回的value值为null.

原因:这是因为存入value值覆盖了原先的值,而value的初始值为null。

例:Integer i = map.put("张三",23);   //这里的i值应为null.

在键多次存储时  ,把被覆盖的值返回。

例:Integer i = map.put("张三",23);

      Integer i1 = map.put("张三",25);  //i1的值为23,map中的值为25.

2.删除:

void clear():移除所有的键值对元素。

void remove():通过对应的键值对删除值。

例:map.put("张三",23);

Integer i = map.remove("张三");   //i为23,张三代表的键已被删除。

3.判断:

boolean containsKey():判断集合是否包含指定的键

boolean containsValue):判断集合是否包含指定的值

boolean isEmpty():判断是否为空

4.获取:

Collection <V> values():获取集合中所有的值

Collection<Integer> i = map.values();

Integer i = map.get("张三");   //根据建获取值

Set<String> a = map.keySet();  //获取所有键的集合。

解释:因为map中没有迭代的方法,因此转换成了set的形式来进行遍历。

for(String a:map.keySet){

System.out.println(map.get(a));

}

 

Set<map.entry<String,Integer>> en = map.entrySet();

//Entry是map里面的一个内部接口,将键和值封装成了一个对象。并存储在Set集合中。

 

案例:统计一个字符串中的字符出现个数

package com.heima;

import java.util.HashMap;
import java.util.Map.Entry;

public class Test1 {

    /**
     * @param args
     */
    public static void main(String[] args) {

        String a = "aaabbbccccccc";
        char arr[] = a.toCharArray();
        
        HashMap<Character, Integer> hm = new HashMap<Character, Integer>();
        
        for(Character s:arr){
            if(!hm.containsKey(s)){
                hm.put(s, 1);
            }else{
                hm.put(s, hm.get(s)+1);
            }
        }
        
        for(Character h:hm.keySet()){
            System.out.println(h+"="+hm.get(h));
        }
        
    }

}

 

 

      

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值