“
只要持续地努力,不懈地奋斗,就没有征服不了的东西。
----塞内加
”
第一题
常用的集合有哪些,谈谈对它们的理解?
(1) Collection接口:单列集合,有两个子接口
1) List接口:
有三个实现类
LinkedList:基于链表实现,每一个元素存储本身内存地址的同时还存储下一个元素的地址。链表增删快,查找慢;
ArrayList:基于数组;每次增删都要创建新的数组,但数组有索引。数组增删慢,查找快
Vector:基于数组,线程安全的,效率低
2) Set接口:
有两个实现类
HashSet:存储的元素无序,不可重复,底层是哈希表;
LinkedHashSet:存储的元素有序,不可重复,底层是哈希表和链表的结合。
(2) Map接口:双列集合
有三个实现类(HashMap,HashTable,TreeMap)
HashMap:非线程安全,高效,支持null;
LinkedHashMap:是HashMap的一个子类,保存了记录的插入顺序;
HashTable:线程安全,低效,不支持null;
TreeMap: 能够把它保存的记录根据键排序,默认是键值的升序排序。
写在后面
本文章将以“指导面试,智取Offer”为宗旨,为广大Java开发求职者扫清面试道路上的障碍,成为面试官眼中的精英,朋友圈里的大神。在面试场上“胸有成竹”,坦然面对每个面试官的“拷问”,做到进可攻“项目经理、项目总监”等高级职务,视之为翘首可及;退可守“Java工程师、Java测试工程师”等职务,视之为探囊取物。无论进退、皆可立于不败之地。
The end