• 备战秋招--容器


    容器

    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 有什么区别?

  • 相关阅读:
    FreeRTOS入门教程(事件组概念和函数使用)
    计算机等级考试—信息安全三级真题三
    【双向链表的插入和删除】
    济南ITSS的由来及内容
    用libmodbus实现一个支持多客户端的modbus tcp server (slave)
    python+unittest+requests+HTMLRunner搭建接口测试框架,执行用例请求多个不同请求方式的接口
    全局参数校验@Valid的使用方法和写法。
    免费还能商用的视频素材,拿走不谢。
    沉睡者 - 现在的百度渠道还有网赚时机吗?
    【计算机网络】NAT协议
  • 原文地址:https://blog.csdn.net/weixin_51930617/article/details/126781834