数组概述

数组(Array)是一种用连续的内存空间存储相同数据类型数据的线性数据结构。

int[] array = {22,33,88,66,55,25};

image-4d1q.png

ArrarList LinkedList 区别 难度系数:

ArrayList 是实现了基于动态数组的数据结构,LinkedList 基于链表的数据结构。

对于随机访问 get 和 set,ArrayList 效率优于 LinkedList,因为 LinkedList 要移 动指针。

对于新增和删除操作 add 和 remove,LinkedList 比较占优势,因为 ArrayList 要 移动数据。

这一点要看实际情况的。若只对单条数据插入或删除,ArrayList 的速 度反而优于 LinkedList。

但若是批量随机的插入删除数据,LinkedList 的速度大大 优于 ArrayList. 因为 ArrayList 每插入一条数据

,要移动插入点及之后的所有数据

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

  • 数组转List ,使用JDK中java.util.Arrays工具类的asList方法

  • List转数组,使用List的toArray方法。无参toArray方法返回 Object数组,传入初始化长度的数组对象,返回该对象数组

image-uos5.png

数组转List受影响

List转数组不受影响

面试官:说一说Java提供的常见集合?(画一下集合结构图)

候选人

嗯~~,好的。

在java中提供了两大类的集合框架,主要分为两类:

第一个是Collection 属于单列集合,第二个是Map 属于双列集合

  • 在Collection中有两个子接口List和Set。在我们平常开发的过程中用的比较多像list接口中的实现类ArrarList和LinkedList。 在Set接口中有实现类HashSet和TreeSet。

  • 在map接口中有很多的实现类,平时比较常见的是HashMap、TreeMap,还有一个线程安全的map:ConcurrentHashMap