IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Java知识库 -> 【集合】------->Map -> 正文阅读

[Java知识库]【集合】------->Map

Map集合

概述

??Map 是一种键-值对(key-value)集合,Map 集合中的每一个元素都包含一个键对象和一个值对象

注意?:Map中的集合不能包含重复的键,值可以重复;每个键只能对应一个值。

interface Map<K,V>  K:键的类型;V:值的类型

??Map接口下的集合与Collection接口下的集合,它们存储数据的形式不同:

  • Collection中的集合,元素是孤立存在的(单身🐕),向集合中存储元素采用一个个元素的方式存储。
  • Map中的集合,元素是成对存在的(👫)。每个元素由键与值两部分组成,通过键可以找对所对应的值。
  • Collection中的集合称为单列集合,Map中的集合称为双列集合。
    在这里插入图片描述
    ??Map 接口主要有两个实现类:HashMap 类和 TreeMap 类。其中,HashMap 类按哈希算法来存取键对象,而 TreeMap 类可以对键对象进行排序。

方法

方法名描述
V put(K key,V value)添加元素
V remove(Object key)根据键删除值对元素
void clear()移除所有的键值对元素
boolean containsValue(Object value)判断集合是否包含指定的值
boolean isEmpty()判断集合是否为空
int size()集合的长度,也就是集合中键值对的个数
boolean containsKey(Object key)判断集合是否包含指定的键
 public static void main(String[] args) {
        Map<String, String> map = new HashMap<>();
        //添加元素
        map.put("花开", "富贵");
        map.put("招财", "进宝");
        map.put("凹凸曼", "小魔仙");
        System.out.println(map);
        System.out.println("————————");
        //根据键删除值对象
        map.remove("凹凸曼");
        System.out.println(map);
        System.out.println("集合值对个数为:"+map.size());
        System.out.println("————————");

        //判断集合是否包含指定的值返回类型为boolean
        System.out.println(map.containsValue("富贵"));
        //判断集合是否包含指定的键
        System.out.println(map.containsKey("蛤蟆先生"));
        map.clear();//移除所有的键值对元素
        map.isEmpty();//判断集合是否为空
    }
运行结果:

{凹凸曼=小魔仙, 招财=进宝, 花开=富贵}
————————
{招财=进宝, 花开=富贵}
集合值对个数为:2
————————
true
false

Map集合的获取方法

方法名描述
V get(Object key)根据键获取值
Set keySet()获取所有键的集合
Collection values()获取所有值的集合
Set<Map.Entry<K,V>> entrySet()获取所有键值对对象的集合

在这里插入图片描述

这里了解一下知道有这些方法就可,待解析完遍历后在再做详细的讲解

遍历

;Map集合遍历有两种方式:

方式一keySet方法:

我们刚才存储的元素都是成对出现的,所以我们把Map看成是一个夫妻对的集合

遍历思路:

 1. 把所有丈夫集中起来----------->获取所有键的集合。用keySet()方法实现
 2. 遍历丈夫的集合,获取到每一个丈夫----------->遍历键的集合,获取到每一个键。用增强for实现  
 3. 根据丈夫去找对应的妻子----------->根据键去找值。用get(Object key)方法实现

示例:

public static void main(String[] args) {
        Map<String, String> map = new HashMap<>();
        //添加元素
        map.put("花开", "富贵");
        map.put("招财", "进宝");
        map.put("凹凸曼", "小魔仙");

        //1、把所有丈夫集中起来----------->获取所有键的集合。用keySet()方法实现
        Set<String> keySet = map.keySet();
        //2、遍历丈夫的集合,获取到每一个丈夫----------->遍历键的集合,获取到每一个键。用增强for实现
        for (String key : keySet) {
        //3、根据丈夫去找对应的妻子----------->根据键去找值。用get(Object key)方法实现
            String value = map.get(key);
            System.out.println(key+","+value);
        }
    }
运行结果:
凹凸曼,小魔仙
招财,进宝
花开,富贵

方式二entrySet方法:
遍历思路:

1.获取所有结婚证的集合----------->获取所有键值对对象的集合
2. 遍历结婚证的集合,得到每一个结婚证----------->遍历键值对对象的集合,得到每一个键值对对象
    用增强for实现,得到每一个Map.Entry
3. 根据结婚证获取丈夫和妻子----------->根据键值对对象获取键和值
   	用getKey()得到键
   	用getValue()得到值

示例:

public static void main(String[] args) {
        Map<String, String> map = new HashMap<>();
        //添加元素
        map.put("花开", "富贵");
        map.put("招财", "进宝");
        map.put("凹凸曼", "小魔仙");

        //1.获取所有结婚证的集合----------->获取所有键值对对象的集合
        Set<Map.Entry<String, String>> entries = map.entrySet();
        //2. 遍历结婚证的集合,得到每一个结婚证----------->遍历键值对对象的集合,得到每一个键值对对象
        for (Map.Entry<String, String> ma : entries) {
        //3.根据结婚证获取丈夫和妻子----------->根据键值对对象获取键和值
            String key = ma.getKey();
            String value = ma.getValue();
            System.out.println(key + "," + value);
        }
    }
运行结果:
凹凸曼,小魔仙
招财,进宝
花开,富贵

Collections

Collections是针对集合操作的工具类

常用方法:

方法名描述
public static void sort(List list)将指定的列表按升序排序
public static void reverse(List<?> list)反转指定列表中元素的顺序
public static void shuffle(List<?> list)使用默认的随机源随机排列指定的列表

代码实现:

  public static void main(String[] args) {
        //创建集合对象
        List<Integer> list = new ArrayList<>();
        //添加元素
        list.add(30);
        list.add(20);
        list.add(50);
        list.add(10);
        list.add(40);
        //public static <T extends Comparable<? super T>> void sort(List<T> list):将指定的列表按升序排序
        Collections.sort(list);
        System.out.println(list);
        System.out.println("——————————————————");
        //public static void reverse(List<?> list):反转指定列表中元素的顺序
        Collections.reverse(list);
        System.out.println(list);
        //public static void shuffle(List<?> list):使用默认的随机源随机排列指定的列表
        Collections.shuffle(list);
        System.out.println(list);
    }
运行结果:
[10, 20, 30, 40, 50]
——————————————————
[50, 40, 30, 20, 10]
[30, 10, 40, 20, 50]

Collection和Collections的区别:

Collection是一个集合接口
Collections是一个包装类,不能实例化

在这里插入图片描述


  Java知识库 最新文章
计算距离春节还有多长时间
系统开发系列 之WebService(spring框架+ma
springBoot+Cache(自定义有效时间配置)
SpringBoot整合mybatis实现增删改查、分页查
spring教程
SpringBoot+Vue实现美食交流网站的设计与实
虚拟机内存结构以及虚拟机中销毁和新建对象
SpringMVC---原理
小李同学: Java如何按多个字段分组
打印票据--java
上一篇文章      下一篇文章      查看所有文章
加:2021-10-30 12:25:55  更:2021-10-30 12:26:13 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 0:34:29-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码