集合框架——map集合

本文介绍了Java中Map数据结构的作用,包括List与Map的区别,以及HashMap、LinkedHashMap、TreeMap和HashTable等常见实现类的特点。重点讲解了如何通过keySet(),values(),和entrySet()方法遍历Map中的key、value和键值对。
摘要由CSDN通过智能技术生成

Map的作用:

List集合是一种单列集合,是一种顺序列表,而map是一种键值对集合,用key和value表示,就比如根据名字查找对应的歌曲,名字就是key,歌曲就是value,即通过特定的关键信息查找对应的值用List依次遍历查找效率非常低,而map这种(K-V)键值对数据结构,作用就是能高效的通过key来找到对应的value

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

public class demo04 {
    public static void main(String[] args) {
        Map<String,Integer> map= new HashMap<String,Integer>();
        map.put("张三",24);//向map集合中添加元素
        map.put("李四",20);
        map.put("王五",21);
        System.out.println(map);

        int ret=map.get("李四");//通过“李四”键得到对应的value
        System.out.println("李四的年龄是:"+ret);
    }
}

运行结果:

Map类有几个常见的实现类:

HashMap :        特点:无序

数据结构:数组+链表+红黑树

LinkedHashMap :        特点:有序

数据结构:数组+链表+红黑树,(为什么有序)在此基础上多维护了一条双向链表,用来记录元素放进集合的顺序

TreeMap :        特点:按照key自动排序

数据结构:红黑树(有序的自平衡二叉树)

HashTable :        特点:无序,线程安全,性能低,不允许null做key,不允许null做value(会导致空指针异常)

数据结构:数组+链表

遍历Map:

(1)遍历map中的所有key值时,可以用到 keySet() 方法,返回值是一个Set类型的集合,通过foreach遍历拿到所有的key值

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

public class demo04 {
    public static void main(String[] args) {
        Map<String,Integer> map= new HashMap<String,Integer>();
        map.put("张三",24);//向map集合中添加元素
        map.put("李四",20);
        map.put("王五",21);
        map.put("小王",23);
        map.put("小杨",20);
        System.out.println(map);

        Set<String> set=map.keySet();
        for(String s:set){
            System.out.println(s);
        }
    }
}

运行结果:

(2)遍历所有的value值时,可以用到map的 values() 方法,返回类型是一个Collection集合,包含了所有的value值

public class demo04 {
    public static void main(String[] args) {
        Map<String,Integer> map= new HashMap<String,Integer>();
        map.put("张三",24);//向map集合中添加元素
        map.put("李四",20);
        map.put("王五",21);
        map.put("小王",23);
        map.put("小杨",20);
        System.out.println(map);


        Collection<Integer> co=map.values();
        for(Integer n:co){
            System.out.println(n);
        }
    }
}

运行结果:

(3)同时遍历key和value时,可以用到 entrySet() 方法,它包含每一个key-value映射

public class demo04 {
    public static void main(String[] args) {
        Map<String,Integer> map= new HashMap<String,Integer>();
        map.put("张三",24);//向map集合中添加元素
        map.put("李四",20);
        map.put("王五",21);
        map.put("小王",23);
        map.put("小杨",20);
        System.out.println(map);

        for(Map.Entry<String,Integer> en:map.entrySet()){
            System.out.print(en.getKey()+"\t");//得到所有的key
            System.out.print(en.getValue()+"\t");//得到所有的value
        }
    }
}

目录

Map的作用:

Map类有几个常见的实现类:

遍历Map:


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值