Map集合中的常用方法

* 常用方法

  - 注意 Map集合中的key是无序不可重复的set集合,如果添加数据时,key值重复了,后面添加的重复数据也是可以添加成功的,但是会覆盖前面相同的数据。

   1. Object put(Object key,object value)     向Map集合中添加键值对,Map中的key值是不能重复的和hashSet相同 , 存储在map集合key部分的元素需要同时重写hashcode和equals方法。

   2. int size()    输出Map集合中键值对的个数 。

   3. boolean isEmpty()  判断Map集合是否为空

   4. boolean containsKey(Object key) 判断集合中是否包含该key值

   5. boolean containsValue(Object value) 判断集合中是否包含该Value值

   6. Object get(Object key)  通过key值获取value值

   7. Object remove(Object key) 通过key删除整个键值对

   8. Collection values()  获取Map集合中所有的 value

   9. Set keyset() 获取Map集合所有的key值

   10.遍历输出整个Map集合,也就是通过keyset集合的迭代器,先获取到每一个key值,然后再通过key值调用  get(Object key)方法获取到key值对应的value值。

   11. Set EntrySet() 返回此映射中包含的映射关系的Set视图,将Map转换成Set集合的过程,也就是把Map集合中所有的键值对,成对输出,key和value用等号连接。
  • 代码实例
        package com.shige.Collection.Map;
    
        import com.shige.OOP.Inherit.Person;
    
        import java.util.*;
    
        public class MapTest01 {
    public static void main(String[] args) { // 创建一个Map集合
    Map personId = new HashMap(); // 父类引用指向子类对象, HashMap默认初始化容量16,默认加载因子0.75 // 1. Object put(Object key,object value) 向map集合中添加键值对 Map中的key值是不能重复的和hashset相同
    // 存储在map集合key部分的元素需要同时重写hashcode和equals方法
    personId.put("130825199604050713", "施耐庵");
    personId.put("110258632145789652", "曹雪芹");
    personId.put("140256315489961413", "罗贯中");
    personId.put("198524555504050713", "吴承恩");
    personId.put("130825199604050713", "施歌"); // key值重复了,该条数据会添加进去,但是会覆盖原来的数据,也就是覆盖 "施耐庵"。 //2.判断键值对的个数 int size()
    int size = personId.size();
    System.out.println("当前map集合中一共有 " + size + " 对"); // 3.boolean isEmpty() 判断集合是否为空
    System.out.println(personId.isEmpty()); //false // 4.boolean containsKey(Object key) 判断集合中是否包含该key值
    boolean isContainKey = personId.containsKey("130825199604050713");
    System.out.println(isContainKey); //true //5.boolean containsValue(Object value) 判断集合中是否包含该Value值
    boolean isContainValue = personId.containsValue("施耐庵");
    System.out.println(isContainValue); //false boolean isContainValue1 = personId.containsValue("施歌");
    System.out.println(isContainValue1); //true //6.Object get(Object key) 通过key值获取value
    Object personName = personId.get("130825199604050713");
    System.out.println(personName); //7.Object remove(Object key) 通过key删除整个键值对
    personId.remove("198524555504050713");
    System.out.println(personId.get("198524555504050713")); //null 因为已经被移除了
    System.out.println(personId.size()); // 移除了一条数据,还有三条数 /* //8. Collection values() 获取Map集合中所有的value
    Collection values = personId.values(); //将personId集合中的所有value值赋给values集合 //直接输出
    System.out.println(values); // [罗贯中, 施歌, 曹雪芹] //迭代器输出
    Iterator iterator = values.iterator();
    while (iterator.hasNext()) {
    System.out.println(iterator.next());
    } //9.Set keyset() 获取Map集合所有的key值 Set set=personId.keySet(); //将personIdMap集合中的所有key值赋给新的Set集合 //直接输出
    System.out.println(set); //使用迭代器输出
    Iterator iterator1=set.iterator(); //给迭代器重新赋值
    while (iterator1.hasNext()){
    System.out.println(iterator1.next());
    } // 10. 遍历Map集合,同输出<key,value> 方法一 Set set=personId.keySet();
    Collection collection=personId.values();
    Iterator iterator1=set.iterator();
    Iterator iterator2=collection.iterator();
    while(iterator1.hasNext()){
    Object key=iterator1.next();
    Object value=iterator2.next();
    System.out.println("<"+key+","+value+">");
    } */
    //11. 遍历Map集合,同输出<key,value> 方法二 Set set=personId.keySet();
    Collection collection=personId.values();
    Iterator iterator=set.iterator();
    while(iterator.hasNext()){
    Object key=iterator.next();
    Object value=personId.get(key); //通过key来获取value
    System.out.println("<"+key+","+value+">"); } //12. Set EntrySet() 返回此映射中包含的映射关系的Set视图,将map转换成set集合的过程 Set setView=personId.entrySet();
    Iterator iterator1=setView.iterator();
    while (iterator1.hasNext()){
    System.out.println(iterator1.next()); //输出样式: // 140256315489961413=罗贯中
    // 130825199604050713=施歌
    // 110258632145789652=曹雪芹
    } } }

Day10_48_Map集合中的常用方法的更多相关文章

  1. OC中NSDictionary(字典)、NSMutableDictionary(可变字典)、NSSet(集合)、NSMutableSet(可变集合)得常用方法

    字典用于保存具有映射关系数据的集合 一个key—value对认为是一个条目(entry),字典是存储key—value对的容器 与数组不同,字典靠key存取元素 key不能重复,value必须是对象 ...

  2. 00031_ArrayList集合中常用的方法

    1.ArrayList集合提供的一些常用方法 import java.util.ArrayList; public class ArrayListDemo01 { public static void ...

  3. 【Java】遍历List/Set/Map集合的一些常用方法

    /* * 遍历List/Set/Map集合的一些常用方法 */import java.util.ArrayList;import java.util.HashMap;import java.util. ...

  4. Java集合中的Map接口怎么使用?

    Map(双列集合框架) 1.Map接口及实现类概述 Map 接口提供三种collection 视图,允许以键集.值集或键-值映射关系集的形式查看某个映射的内容.映射顺序 定义为迭代器在映射的 coll ...

  5. Collections中的常用方法

    collections中的常用方法 public class CollectionsTest { public static void main(String[] args) { List list ...

  6. sun.misc.Unsafe中一些常用方法记录

    sun.misc.Unsafe中一些常用方法记录 前情摘要 sun公司提供了可以用于直接操作内存的类,这个类就是sun.misc.Unsafe.因为Java本身是不会涉及到直接操作内存的,Java A ...

  7. List接口中的常用方法

    void add(int index, Object ele):在index位置插入ele元素boolean addAll(int index, Collection eles):从index位置开始 ...

  8. 判断IEnumerable<T>集合中是否包含有T对象

    比如,有角色集合中,只有用户创建有角色,才出现“分配”铵钮.反之,隐藏. IEnumerable有一个方法,叫Any:

  9. java范型集合中的成员排序

    范型集合中的类是JsonObject,不是自定义类,如果是自定义类就直接取要比较的字段值. ArrayList<JSONObject> TList = new ArrayList<J ...

随机推荐

  1. HDFS中的NameNode名节点——FSimage

    HDFS缓冲区 Fsimage 文件映射,Edits文件操作记录. 与ES的缓冲区不同,ES是维护数据的变更,而HDFS缓冲区是用于名结点维护文件系统元数据(目录树)的机制. 在HDFS集群中,Nam ...

  2. vscode好用插件总结

    做个记录:https://blog.csdn.net/xishining/article/details/90819481 1.Auto Rename Tag --自动重命名成对的HTML标记.假如你 ...

  3. CentOS7安装ElasticSearch7.9.2

    1:下载 wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.9.2-linux-x86_64.tar. ...

  4. @Transaction注解失效的几种场景

    一.@Transactional介绍 1.@Transactional注解可以作用于哪些地方? @Transactional 可以作用在接口.类.类方法上. 作用于类:表示所有该类的public方法都 ...

  5. 【HTB系列】靶机Vault的渗透测试详解

    出品|MS08067实验室(www.ms08067.com) 本文作者:大方子(Ms08067实验室核心成员) Kali: 10.10.14.213 靶机地址:10.10.10.109 先用nmap探 ...

  6. Linux内核的TCP协议栈和内核旁路的选择?

    [前言]最近在实习公司用到了solarflare的万兆网卡,用到了网卡的openonload技术还有TCPDirect模式代码的编写,其理论基础都是内核旁路.网上关于内核旁路技术的介绍基本就两篇,我结 ...

  7. POJ1458 Common Subsequence

    题目链接:http://poj.org/problem?id=1458 分析:最大公共子序列模板 1 #include<iostream> 2 #include<sstream> ...

  8. linux时间问题

    如果遇到创建时间和更新时间,不一致,先将时间调整为一致. 导致不一致的原因可能是时区不对,使用 tzselect ,将时区调整为Asia/Shanghai , cp /usr/share/zonein ...

  9. Protobuf在Cmake中的正确使用

    Protobuf是google开发的一个序列化和反序列化的协议库,我们可以自己设计传递数据的格式,通过.proto文件定义我们的要传递的数据格式.例如,在深度学习中常用的ONNX交换模型就是使用.pr ...

  10. 我与FreeBSD的故事之三

    联想G400 是我在国美电器线下买的笔记本.我什么也不懂,就随便买了,不随便也不行,谁都知道只要不是那种特别的奸商,基本上货物都是符合价值决定价格这个基本的经济学规律的.所以没钱就失去了选择的自由.到 ...