集合map

集合map

map集合存储的数据必须包含key和value

key和value在map中一一对应,一个key对应一个值。

key在map集合中不重复,相同key值的value值,后者会覆盖前者。

package com.tiedan;

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

public class testmap {
    public static void main(String[] args) {

        Map<String,String>map = new HashMap<>();
        map.put("name","张三");
        map.put("name","李四");
        System.out.println(map);
    }
}

运行结果:{name=李四}

map集合常用实现类HashMap

HashMap集合的特点

  • 底层数据结构是哈希表

  • 存储元素的顺序和遍历获取出来的顺序可能不一致

  • key不会重复.

Snipaste_2023-03-26_15-50-08

当键值对被放到哈希表中时,哈希表会计算相应的索引值,该键值对就会被存放到相应的索引位置,如果一个索引位置有两个或以上的键值对,就会形成链表

HashMap常用方法

Snipaste_2023-03-26_15-57-42

public class testhashmap {
    public static void main(String[] args) {
        HashMap<String,String>map = new HashMap<>();
        //添加元素
       String put =map.put("name","张三");
       map.put("age","15");
        String v = map.put("name", "李四");
        System.out.println(v);
    }
}
package com.tiedan;

import com.sun.prism.shader.Solid_TextureYV12_AlphaTest_Loader;

import java.util.HashMap;

public class testhashmap {
    public static void main(String[] args) {
        HashMap<String,String>map = new HashMap<>();
        //添加元素
       String put =map.put("name","张三");
       map.put("age","15");
        String v = map.put("name", "李四");
        System.out.println(v);
        //获得元素
        String name = map.get("name");
        String age = map.get("age");
        //删除元素,remove方法也有返回值。
        map.remove("age");
        //判断key值是否存在,containsKey方法判断.
        if (map.containsKey("age111")){
            String age111 = map.get("age111");
            System.out.println(age111.length());
            //如果age111这个key值在Hash表中不存在,则会引起空指针报错
        }else {
            System.out.println("key值不存在");
        }
        //清空哈希表中所有的键值对用clear方法
        //map.size统计map中键值对个数.
        map.clear();
        int size = map.size();
        System.out.println(size);
    }
}

Map集合的遍历

  • 使用entryset遍历
//遍历map集合,entry类是Map的内部类,把map集合中的键值对封装成一个对象,
        // 然后把这个对象通过map.entrySet()存在set集合中
        Set<Map.Entry<String, String>> entries = map.entrySet();
//        System.out.println(entries);
        for (Map.Entry<String, String> entry : entries) {
            System.out.println(entry.getKey()+"==="+entry.getValue());
        }

运行结果:

name=张三
age
=15

  • 使用keyset遍历

    //keyset遍历,通过keyset方法把map里面的key全部放到一个set集合里面.然后通过key值去找value值
    Set<String> strings = map.keySet();
    System.out.println(strings);
    for (String string : strings) {
        System.out.println(string+"==="+map.get(string));
    }
    

运行结果:

name=张三
age
=15

posted on 2023-03-28 18:24  张铁蛋666  阅读(19)  评论(0编辑  收藏  举报

导航