• 备战秋招--容器


    容器

    18、java中容器都有哪些?

    java中容器分为单列的集合和双列的集合;

    单列集合的顶级接口是collection,子接口有list、queue和set,其中list的实现类有vector、arraylist和linkedlist,其中vector有子类stack,queue有实现类linkedlist和priorityqueue,set有实现类hashset和treeset;

    双列的集合有顶级接口map,实现类有hashmap、hashtable和treemap,其中hashmap有子类linkedhashmap,hashtable有子类properties。

    19、collection和collections有什么区别?

    collect是java集合的一个顶级接口,而collections是java集合的一个工具类,里面有许多操作java集合的方法。

    20、list、set、map之间的区别?

    list接口是有序、可重复、有索引,set接口是无序、不重复、无索引,map的key不可重复;list和set继承自collection接口,而map本身便是顶级接口,list、set、map三者之间的实现类也是各不相同;常用方法有些也不同,list和set放元素都是用add,map放元素使用put,map还有keyset和values方法将key和value形成一个集合;

    21、hashmap和hashtable有什么区别?

    底层的数据结构不一样,hashmap底层是数组+链表+红黑树,而hashtable底层是数组+链表;hashtable是线程安全的,hashmap线程不安全;hashmap运行空键值而hashtable不允许。

    22、如何决定使用hashmap还是treemap?

    hashmap的底层是数组+链表+红黑树,有数组链表还有树的特性,因此适合插入删除和定位元素。

    tresmap底层是红黑树,保留有树的特性,如果有大量的数据需要遍历,使用treemap无疑是个更好的选择。

    23、说一说hashmap的实现原理?

    jdk1.8之前hashmap的底层是数组+链表;而jdk1.8之后hashmap的底层是数组+链表+红黑树;当存入一个元素时,先通过hascode()方法算出这个元素在哈希表中存放的位置,这期间如果有大量的元素存在哈希表的同一个位置,则该位置会形成一个链表,当链表的长度大于8时,此链表就会转为红黑树。

    24、说一说hashset的实现原理?

    hashset是基于hashmap实现的,hashset的值存放在hashmap的key中,hashmap的值统一为present。

    接下来的都会懒得写,因为到饭点了,饿死了溜了溜了。

    25. ArrayList 和 LinkedList 的区别是什么?

    26. 如何实现数组和 List 之间的转换?

    27. ArrayList 和 Vector 的区别是什么?

    28. Array 和 ArrayList 有何区别?

    29. 在 Queue 中 poll()和 remove()有什么区别?

    30. 哪些集合类是线程安全的?

    31. 迭代器 Iterator 是什么?

    32. Iterator 怎么使用?有什么特点?

    33. Iterator 和 ListIterator 有什么区别?

  • 相关阅读:
    (WebFlux)002、如何打印日志与链路ID
    @Redis高级(数据删除淘汰策略,主从复制,哨兵模式,集群,缓存预热,雪崩,击穿,穿透)
    git-ssh-key协议同步文件
    【云原生 | Kubernetes 系列】---Prometheus 监控Java服务
    Z检验|T检验|样本标准差S代替总体标准差 σ
    GIS工具maptalks开发手册(三)03——官网示例之添加图层和移除图层
    第13章: 常用类
    ADS8866 ADC转换芯片驱动调试
    Linux常见进程类别
    【精简改造版】大型多人在线游戏BrowserQuest服务器Golang框架解析(2)——服务端架构
  • 原文地址:https://blog.csdn.net/weixin_51930617/article/details/126781834