数组概述
数组(Array)是一种用连续的内存空间存储相同数据类型数据的线性数据结构。
int[] array = {22,33,88,66,55,25};
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数组,传入初始化长度的数组对象,返回该对象数组
数组转List受影响
List转数组不受影响
面试官:说一说Java提供的常见集合?(画一下集合结构图)
候选人:
嗯~~,好的。
在java中提供了两大类的集合框架,主要分为两类:
第一个是Collection 属于单列集合,第二个是Map 属于双列集合
在Collection中有两个子接口List和Set。在我们平常开发的过程中用的比较多像list接口中的实现类ArrarList和LinkedList。 在Set接口中有实现类HashSet和TreeSet。
在map接口中有很多的实现类,平时比较常见的是HashMap、TreeMap,还有一个线程安全的map:ConcurrentHashMap