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 }
  • 相关阅读:
    小笔记——a标签触发file
    错误笔记——MVC自带验证
    错误笔记——表达式树不能包含动态操作(aspx)的解决
    囫囵吞枣——Bootstrap
    闪回技术
    RAC架构中各种日志所在路径
    行迁移与行链接
    BBED制作空块并用rman恢复(修改坏块前一定要做rman备份!!!)
    死锁处理
    更改一字段的全部字节的大小写
  • 原文地址:https://www.cnblogs.com/xiaoluohao/p/11641072.html
Copyright © 2011-2022 走看看