zoukankan      html  css  js  c++  java
  • Java 集合、Map 相关

    集合相关

    List、Set、Map的区别

    类型 描述
    List 允许重复对象,可插入多个null元素,有序
    Set 不允许重复对象,只允许一个null元素,无序
    Map 不是collection的子接口或实现类,是一个接口,每个元素都是entry,一个键一个值

    Vector、ArrayList、LinkedList的区别

    类型 描述
    Vector 动态数组,安全,扩容提高1倍
    ArrayList 动态数组,不安全,扩容增加50%,初始容量10
    LinkedList 双向链表,不安全,不需要调整容易

    Vector:动态数组,安全,扩容提高1倍

    ArrayList:动态数组,不安全,扩容增加50%,初始容量10

    LinkedList:双向链表,不安全,不需要调整容易

    TreeSet为什么有序

    实现了SortedSet接口,还是通过 Comparator  或者 Comparable 维护了一个排序顺序

    HashMap方面

    HashMap的内部数据结构

    底层使用哈希表(链表( O(n) )+数组),若链表长度过长会转成红黑树实现(O(logn))

    HashMap小知识点

    知识点 答案
    HashMap初始容量 16
    HashMap扩容增量 原容量的1倍(2的平方)
    HashMap调整容量大小的值 需要调整容量大小的指定值=当前容量*负载因子
    HashMap如何保证随机性 通过key的hashCode值,调用hash函数
    HashMap的容量为什么是2的倍数 因为hash算法的原因,为了最大随机性,让key的hashcode去决定索引值
    HashMap的容量为什么是2的倍数 hash算法的原因,为了最大随机性,让key的hashcode去决定索引值
    HashCode的作用 确定对象在哈希表的索引位置
    什么是Hash碰撞? 当不同key通过hash算法定位键值对存储位置时,两个key会定位到相同位置
    如何解决Hash碰撞? 链地址(拉链法)法(即链表形式)
    HashMap为什么线程不安全 Hashmap没有实现锁的机制,1.5之后提供了ConcurrentHashMap高效的线程安全类
    HashMap线程不安全的表现 会出现更新丢失,存储了B put的值,但是丢失了A put的值

    HashTable、HashMap、TreeMap、LinkedHashMap的区别

    类型 底层数据结构 是否同步 others
    HashTable 哈希表 Yep 不支持null键和null值,无序
    HashMap 哈希表 Yep 支持null键和null值,无序
    TreeMap 红黑树 No 通过Comparator或实现Comparable接口对键的顺序关系决定有序
    LinkedHashMap 双向链表 No 遍历顺序决定有序
  • 相关阅读:
    点击CheckBox让Gridview控件在编辑与正常状态之间切换
    BMP图片转换为JPEG图片
    ASP.NET截取网页注释行之间的内容
    Mouse点击之后,复制GridView控件的数据行
    Mouse单击高亮GridView数据行
    ASP.NET div信息提示框显示几秒后隐藏
    RDLC报表带搜索与传参数功能演示(ASP.NET MVC)
    ASP.NET MVC应用程序使用axd格式文件
    Nginx通过geo模式实现限速白名单和全局负载均衡
    MySQL 下mysqladmin日常管理命令总结
  • 原文地址:https://www.cnblogs.com/poloyy/p/12124417.html
Copyright © 2011-2022 走看看