• java集合之HashMap


    HashMap<K,V>: 位于java.util包下。


    1 HashMap概述

    特点:基于哈希表的 Map 接口的实现;键唯一,值可重复;允许存放null值和null键;无序(存取顺序不一致);实现不同步,线程不安全;除了非同步和允许使用 null 之外,HashMap 类与 Hashtable 大致相同。如果要顺序输出存储的内容,必须使用LinkedHashMap,该类继承自HashMap,但是内部保证了存储的有序性。

    保证唯一性:依赖于存储元素的equals()和hashCode()方法的实现

    常用构造:

     HashMap<K,V>() : 构造一个具有默认初始容量 (16) 和默认加载因子 (0.75) 的空 HashMap

    常用方法:

    1)添加功能

    public V put(K key,V value)

    2)获取功能

    public Set<Map.Entry<K,V>> entrySet()  : 获取键值对集合

    pub V get(Object key) : 根据键获取对应的值

    public Set<K> keySet(): 获取键的集合

    public Collection<V> vlaues():获取值的集合

    public int size():获取键值对的个数

    3)删除功能

    public V remove(Object key):移除此键值对,返回值

    public void clear() :从映射中移除所有映射关系

    4)判断功能

    boolean containsKey(Object key) : 判断是否包含对应的键

    boolean isEmpty():判断该映射关系是否不包含键值对


    2 HashMap的使用:

    例1 :实现遍历方式+验证如果存取的键重复

    package com.map.demo;

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

    public class HashMapDemo {
      public static void main(String[] args) {
        Map<Integer,String> map = new HashMap<Integer,String>();
        map.put(1, "cat");
        map.put(2, "dog");
        map.put(3, "tiger");
        map.put(3, "tree");
        map.put(4, "elephent");

        Set<Integer> set = map.keySet();
        for(Integer i : set){
          String value = map.get(i);
          System.out.println("编号:"+i+"动物是:"+value);
        }

        System.out.println("--------------------------");

        Set<Map.Entry<Integer, String>> allEntry = map.entrySet();
        for(Map.Entry<Integer, String> entry : allEntry){
          Integer key = entry.getKey();
          String value = entry.getValue();
          System.out.println("编号:"+key+"动物是:"+value);
        }
      }
    }

    输出结果:

    编号:1动物是:cat
    编号:2动物是:dog
    编号:3动物是:tree
    编号:4动物是:elephent
    --------------------------
    编号:1动物是:cat
    编号:2动物是:dog
    编号:3动物是:tree
    编号:4动物是:elephent

    分析:此处引出两个问题:

    1)Map集合的两种遍历方式:

       A:由key取value:先获取key集合,再根据key寻找对应的value

       B:获取键值对集合,一一获取

    2)Map集合如何实现存取的键的唯一性

       这个需要查看HashMap集合的put方法的源码:

       分析查看源码可知:如果重复存取相同key值的元素,则会将最后存取的键值对的值(新值)替换掉前一个键值对的值。并且该方法返回原来的值(旧值)。



  • 相关阅读:
    [Python3网络爬虫开发实战] 3.1.3-解析链接
    pusher-http-go
    gopush-cluster 架构
    消息队列 redis vs nsq
    redis资料
    golang+websocket
    golang之flag.String
    Linux环境下安装mysql
    golang版的crontab
    golang实现wav文件转换为mp3文件
  • 原文地址:https://www.cnblogs.com/zwbg/p/5904438.html
Copyright © 2020-2023  润新知