集合相关

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 遍历顺序决定有序

测试必备之Java知识(三)—— 集合、Map相关的更多相关文章

  1. 测试必备之Java知识(二)—— Java高级的东西

    Java高级 类加载过程 加载(创建class对象) -> 连接(验证-准备-解析) -> 类初始化 类加载器类别 根类加载器:加载java核心类 扩展类加载器:加载JRE目录中的jar包 ...

  2. 测试必备之Java知识(四)—— 线程相关

    线程相关 Java多线程实现方式 继承Thread,实现Runnable接口,实现Callable接口(能抛异常且有返回值,不常用) 为什么有了继承Thread方式还要有Runnable接口方式 实现 ...

  3. 测试必备之Java知识(一)—— Java基础

    Java基础 Java如何运行的? 开发的java源代码,通过javac编译成为平台无关的字节码文件(class),然后通过JVM的解释器将字节码解释成对应的机器码 “一次编译,到处运行”的理解 说的 ...

  4. Android开发学习必备的java知识

    Android开发学习必备的java知识本讲内容:对象.标识符.关键字.变量.常量.字面值.基本数据类型.整数.浮点数.布尔型.字符型.赋值.注释 Java作为一门语言,必然有他的语法规则.学习编程语 ...

  5. Java入门(三)——集合概讲

    集合(或者叫容器)是Java的核心知识点,它有着很深的深度.我们这里不会设计多深,仅仅作为了解入门,深入了解请移步各种集合源码文章.好的,下面正是开始介绍... Java集合为何而生 我们知道,Jav ...

  6. Java中的集合Map、HashMap、Hashtable、Properties、SortedMap、TreeMap、WeakHashMap、IdentityHashMap、EnumMap(五)

    Map Map用于保存具有映射关系的数据,因此Map集合里保存着两组值,一组值用于保存Map里的key,另一组值用于保存Map里的value,key和value都可以是任何引用类型的数据.Map的ke ...

  7. 双列集合Map相关面试题

    一.了解Map集合吗?Map集合都有哪些实现 HashMap HashTable LinkedHashMap TreeMap ConcurrentHashMap 二.HashMap和HashTable ...

  8. Java——Math,Set,List,map相关练习

    声明一个Set集合,只能保存Double类型的数据, 保存10个随机100以内的数, 找出最大值和最小值,打印输出. public static void main(String[] args) { ...

  9. Java知识回顾 (1) 编译环境与基本变量类型

    参考资料 runoob Java知识回顾序列的相关资料,主要来自 runoob,并对其中的知识进行概况或总结,去除对一个之前了解过Java的人员无关的知识点.以便能够使得一个新手,或之前有Java经验 ...

随机推荐

  1. 降智严重——nowcoder练习赛46&&codeforces #561 Div2

    两场比赛降智不停,熬夜爆肝更掉rating nowcoder: https://ac.nowcoder.com/acm/contest/894#question T1:水题 T2:考虑a和b的子区间! ...

  2. 【39.68%】【CF 714 C】Filya and Homework

    time limit per test 1 second memory limit per test 256 megabytes input standard input output standar ...

  3. HDU4609 FFT+组合计数

    HDU4609 FFT+组合计数 传送门:http://acm.hdu.edu.cn/showproblem.php?pid=4609 题意: 找出n根木棍中取出三根木棍可以组成三角形的概率 题解: ...

  4. com.netflix.discovery.DiscoveryClient : Completed shut down of DiscoveryClient

    启动报错:com.netflix.discovery.DiscoveryClient    : Completed shut down of DiscoveryClient 解决方案: 添加web主件 ...

  5. boostrap-非常好用但是容易让人忽略的地方【1】:modal

    使用bootstrap框架好久了,在开发中也用到了或者遇到了很多的问题,所以跟大家分享一下 bootstrap modal 组件的样式 .modal-lg .modal-sm 说明:这个是bootst ...

  6. win10 配置g++环境

    一.配置g++编译器的环境 1.将g++编译器的位置添加到环境变量path中,安装了C++ IDE的可以在IDE的安装目录下寻找 例如:C:\MySoftware\dev\Dev-Cpp\MinGW6 ...

  7. WWDC2018 之 优化 App Assets Optimizing App Assets

    该篇博客记录了观看WWDC Session227<Optimizing App Assets>的内容以及一些理解. 引言 该session主要讲述了使用Assets Catalog的新特性 ...

  8. Struts||IQ

    Here's question about struts2....... 1.struts2原理 初始的请求通过一条标准的过滤器链,到达 servlet 容器 ( 比如 tomcat 容器,WebSp ...

  9. kotlin + springboot整合mybatis操作mysql数据库及单元测试

    项目mybatis操作数据库参考: http://how2j.cn/k/springboot/springboot-mybatis/1649.html?p=78908 junit对controller ...

  10. 啊哈!C语言课后参考答案上

    最近看到一本好评量很高的的C语言入门书,课本真的很好,入门的话.专业性没有那么强,但入门足够了!!好评!看着看着就想把这本书的题课后习题都写出来,最后就有了这个小结.可能有的不是最好,不那么专业,但主 ...