1.首先我们要知道什么是集合?
集合是指具有某种特定性质的具体的或抽象的对象汇总而成的集体。其中,构成集合的这些对象则称为该集合的元素。总而言之集合是程序猿离不开的东西,项目的必需品。
2.常见得集合有哪些呢?
先请看下图
该图就包含我们常用的集合,并且进行了分门别类。
哪我们主要看一下Queue的集合。(先进先出)
HashMap的实现原理
通过put和get存储和获取对象,存储对象时,我们将K/V传给put方法时,它调用hashcode计算hash从而得到bucket位置,进一步存储,HashMap会根据当前bucket的占用情况自动调整容量。获取对象时,我们将K传递给get,他调用hashcode计算hash从而得到bucket位置,并进一步调用equals()方法确认键值对。
List、Set、Map之间的区别
List和Set都继承Collection,但是Map不是Collection的子接口。
List 可以允许重复的元素 ,可以插入多个null元素,有序的容器,插入的顺序和输出的顺序一样。
Set 不允许重复元素,只允许一个null元素,无序容器。
Map 键值对存储,键必须唯一,但是值可以重复,键只允许一个null,值可以允许有多个null,无序容器。
Arrays和Arraylist的区别
Arrays是数组,长度固定,不可变,储存数据单一,比较简单。
Arraylist是集合,刚好与之相反,长度可变,储存数据多样化,相比之下较复杂。
数组与集合的相互转化
数组变集合:可以使用Arrays.asList(数组)。
集合变数组:可以使用list.toArrays()。