zoukankan      html  css  js  c++  java
  • JAVA-集合-Map

     1 package test;
     2 
     3 import java.util.HashMap;
     4 import java.util.Hashtable;
     5 
     6 public class MapDemo {
     7     public static void main(String[] args) {
     8         /*Map - 映射
     9          *     1.是java中映射的顶级接口
    10          *     2.Map是一个容器,这个容器存储的是键值对
    11          *     3.一个映射的完成需要这两组值,第一组值称之为Key-键,第二组值称之为Value-值
    12          *     4.键是唯一的,每一个键对应一个值。
    13          *     5.在映射中,键和值是成对出现的,这种结构就叫键值对。所以一个映射实际上是由多个键值对来组成的
    14          *     6.如果存放重复的键,那么对应的值会被代替。
    15          *     7.Map不是集合,但是 Map是JAVA集合框架的成员
    16          *     8.JAVA集合框架- JAVA Collections Framework
    17          *             其包含了数组、集合、映射相关的类以及接口:
    18          *                 Collection、Map、Arrays、Collections、Iterator、Comparator、Comparable
    19          *     实现类
    20          *         HashMap
    21          *             1.底层依靠数组+链表结构来存储数据
    22          *             4.数组的每一个位置上维系一个链表结构
    23          *             5.数组的每一个位置称之为一个bucket - 桶
    24          *             2.默认数组的初始容量16,默认加载因子是0.75F
    25          *             3.JDK1.8中,如果单个桶中的节点个数超过8个会将链表扭转成一棵红黑树,当节点个数小于7个的时候,会扭转回链表
    26          *             4.如果指定了初始容量n,那么  2^x <n<= 2^x+1 , 实际容量就是2^x+1
    27          *             5.当已经使用的桶的数量/桶的总数量>加载因子时,就会进行扩容。
    28          *             6。每一次扩容增加一倍,底层基于左移来运算
    29          *                 扩容完成之后,所有的元素要重新计算重新分布-rehash(扩容)
    30          *     减少rehash的次数:
    31          *         1.增大初始容量
    32          *         2.适当提高加载因子:0.6-0.8
    33          *     7.同一个类的同一对象的哈希码一定是相同的,同一个类的不同对象哈希码一般是不同的
    34          *     8.元素个数越多的时候,rehash的效率就越慢
    35          *     9.加载因子越小,rehash的次数越大,同时导致空间的浪费;加载因子越大,在元素插入的过程中,比较次数越多
    36          *     10.键值对在往桶中放的时候,会先和桶中的所有的键值对的键进行比 较;如果键一致,则对应的值覆盖;如果键不一致,则插入到链表的尾部
    37          *    11.允许null键和null值
    38          *    12. 异步式线程不安全    
    39          * */
    40             HashMap<Integer,String> H1 = new HashMap<>();
    41             H1.put(10,"L");
    42             H1.put(12,"因为在一千年以后");    
    43             H1.put(11,"世界早已没有我");
    44             H1.put(13,"无法深情握着你的手");
    45             H1.put(14,"亲吻着你额头");
    46             H1.put(10,"K");
    47             System.out.println(H1);
    48         /*
    49          * Hashtable
    50          *     1.HashTable是JAVA最早的映射
    51          *     2.不允许键和值为null
    52          *     3.底层也是依靠数组+链表结构存储
    53          *     4.给定的初始容量是多少,那么就是多少
    54          *     5.同步式线程安全
    55          *     6.默认初始容量是11,默认加载因子是0.75F
    56          * */
    57             Hashtable<Integer,String> HT = new Hashtable<>();
    58             HT.put(1, "越渺小");
    59             HT.put(2, "越害怕得到");
    60             HT.put(3, "每一次哭");
    61             HT.put(4, "每一次哭");
    62             HT.put(5, "每一次哭");
    63             HT.put(6, "每一次哭");
    64             HT.put(7, "每一次哭");
    65             HT.put(8, "每一次哭");
    66             HT.put(9, "每一次哭");
    67             HT.put(10, "每一次哭");
    68             HT.put(11, "每一次哭");
    69             HT.put(12, "每一次哭");
    70             HT.put(13, "每一次哭");
    71             HT.put(14, "每一次哭");
    72             HT.put(0, "每一次哭");
    73             System.out.println(HT);
    74 
    75             
    76     }
    77 }
  • 相关阅读:
    Codeforces Round #344 (Div. 2) C. Report 其他
    Codeforces Round #344 (Div. 2) B. Print Check 水题
    Codeforces Round #344 (Div. 2) A. Interview 水题
    8VC Venture Cup 2016
    CDOJ 1280 772002画马尾 每周一题 div1 矩阵快速幂 中二版
    CDOJ 1280 772002画马尾 每周一题 div1 矩阵快速幂
    CDOJ 1279 班委选举 每周一题 div2 暴力
    每周算法讲堂 快速幂
    8VC Venture Cup 2016
    Educational Codeforces Round 9 F. Magic Matrix 最小生成树
  • 原文地址:https://www.cnblogs.com/xiaoluohao/p/11641072.html
Copyright © 2011-2022 走看看