2.1 谈谈你对Java集合的理解
难度:★★★
重点:★★★★
白话解析
集合类的概念还是比较重要的,不仅面试经常问,实际开发中也离不开。如果能把这道题真正理解了,集合可以说基本上没问题了。
集合就用来用存数据的,它提供了对数据增删改查和统计大小等方法。在Java中集合就两大类:Collection和Map,这两兄弟都是接口,规范了一些对数据操作的方法,但是他们自己不实现这些方法,而是由他们的子类去实现,这就好比,他们只制定规范,具体落地由其他人来做。
在理解具体的集合之前,我们要明白,集合是用来在内存中存数据的,而内存中存数据的基本结构无非就只有数组、链表、树、图等结构。搞明白这个,我们继续往下走。
在Collection接口下又定义了三个主要的子接口:Set、List、Queue;所以以后在被问到Java集合的时候,理解Set、List、Queue、Map这四兄弟就好了,那接下来为啥要有这四兄弟,简单做个介绍:
-
Set:按照源码的解释就是,它就是用来存不能出现重复的数据。
-
List:按照源码的解释,它是有序的集合,为什么说他有序呢?它会为每个数据给一个下标,标识该数据的唯一性,所以它里面可以存重复的。
-
Queue:从名字就能看出来,它就是一个队列,不过不算是基本结构,因为它底层真正用来存数据的依然是数组或者链表。然后通过基本数据结构疯转成队列这么一个结构,提供先进先出