Map 集合体系

Map 集合体系

1 特点 (Map是Map集合体系的根接口)

(1)键值对存储(key-value),一个键值对对应Map集合中的一个元素

(2)键 无序 无下标元素不允许重复

(3) 值 无序无下标 元素允许重复

  1. 常用方法:

    (1) put(K key, V value):往Map集合中添加一个键值对, 如果map没有存在要添加key内容,直接添加,返回值为 null;但是如果添加的key在map中已经存在,则key对应的 新value替代原有value,被替代的value作为返回值返回。 【开发应用重点】

    (2) V remove(K key):通过键删除Map中对应键值对,被删 除的value作为返回值返回。

    (3) V get(K key):通过键(key)获取对应的value 【重点】

    1. int size():获取Map中键值对的个数

    (5) boolean containsKey(K key):判断Map集合中是否包含 某一个键,包含-true;不包含-false.

    (6) boolean containsValue(V value):判断Map集合中是否 包含某一个值,包含-true;不包含-false.

    1. 实现类:HashMap

      注意:如果自定类型的对象作为HashMap的键,为了保证元 素不重复,则对象对应的类需覆盖 hashCode和equals方 法。但是为了提高检索的效率,开发时通常使用 String/Integer(例如String的用户名或是Integer的id)作为 HashMap的键。

      (1) HashMap:JDK1.2版本,线程不安全,运行效率较快; 允许 null作 键和值。

      (2) LinkedHashMap:是HashMap的子类,按照元素添加的 顺序操作集 合元素。

      (3) Hashtable:JDK1.0版本,线程安全,运行效率较慢,不允许null作为键和值。

      (4) Properties是Hashtable的子类,要求key和value是 String类型;

      应用场景:加载配置文件时应用。

      (5) TreeMap:是SortedMap的实现类,SortedMap是Map 的子接口; 对Map中的键根据内容完成排序。

  2. 遍历方式 (1) 键遍历:通过 Map中的keySet方法获取map集合中所有 的键【重点】

//创建Map 对象
Map <T> map=new HashMap<>();
Set <k> ks=map.keySet();//获取Map中所有键
//通过遍历Set集合ks获取每一个键
for(K key:ks){
    //通过每一个键获取对应的值
    V value =map.get(key);
    //通过key和value 操作键和值的内容
}

(2)值遍历 通过Map 中values 方法获取map集合中所有值

//创建Map 对象
Map <T> map=new HashMap<>();
Collcetion <V> vs =new map.values();
// 通过遍历Collection 集合vs 获取每一个值
for(V value:vs){
  // 通过value 操作 集合中每一个值 
}
//注意:Map没有方法 通过 值 获取对应的键

(3) 键值对遍历:通过Map中的entrySet方法获取Map中所有 键值对

//创建Map 对象
Map <T> map=new HashMap<>();
Set<Map.Entry<K,v>> kvs= map.entrySet();//获取所有键值对
// 通过 遍历 Set集合 kvs获取每一个键值对
for( Map.Entry<k,v> kv :kvs){
    K key =kv.getKey();//获取键
    V value=kv.getValue();//获取值
    // 通过key 和value 操作键和值
}

示例代码

public class TestHashMap {
public static void main(String[] args) {
    /* 学号              姓名
    *   key(唯一)        value(不唯一)
    通过输出学生信息 看三个遍历
    */
    Map<Integer,String> map=new HashMap<>();
    map.put(1515037,"流云");
     map.put(1515035,"黄朝");
     map.put(1515034,"流云");
     map.put(1515007,"南宫寒");
    // 通过 Map中的 keySet方法获取 Map集合中所有的键,将所有的键存储在 Set集合中,作为返回值返回
    // ``````````键遍历```````````
    Set<Integer> ks= map.keySet();
    for(Integer key:ks){
        // 通过键 获取值 
        String value = map.get(key);
        System.out.println(key+" "+value);
    }
    //`````````值遍历````````````
    Collection <String> vs =map.values();
    for(String value:vs){
        System.out.println(value)
    }
    //~~~~~~~~~···键值对遍历··········
    // 获取map 中所有键值对
    Set<Map.Entry<Integer,String>>kvs =map.entrySet();
    for(Map.Entey<Integer,String> kv:kvs){
        // 通过 Entry获取 键
Integer key= kv.getKey();//获取键
String value= kv.getValue();// 获取值
System.out.println(key+"-"+value);
    }
  }
}

不足之处还请各位看官海涵 指正。

谢谢观看

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值