对java集合的基本理解
初学者在学习这部分时,可能会被短时间内得到的大量知识点而将其搞混,所以这部分的内容需要在未来时间长期回顾和学习。此文中列举常见的集合并简略概括了其核心知识点,适合学习完毕后的再次回顾和复习阶段的使用。
集合其实可以看作一个容器,一个装对象的引用的容器,它包括了Collection和map集合。
Collection集合:Collection分别被List和Set继承,其中List常用的3个子类,ArrayList,LinkedList和Vector,set中2个常用的子类,HashSet和TreeSet。由于Collection继承了iterable接口,所以所有子类均可以使用其迭代器。
List集合:储存元素的特点是有序可重复,存储的元素均有下标。其中有序的含义并不是说存储进去的数据是无序,拿出时就有序,而是说此数据以如何顺序存储进去的,就以如何顺序取出,其中的有序是因为List集合都有下表,下标从零考试,以一递增。
ArrayList集合:底层采用的是数组的数据结构。ArrayList是非线程安全的。数据的特点是易查询,难插入。
LinkedList集合:LinkedList集合底层采用的是双向链表的数据结构,同样是非线程安全的。链表的特点是易插入,难查询。
Vector集合:底层采用的是数组的数据结构,Vector所有的方法都是被synchronized关键字修饰的,所以它是线程安全的,但是效率较低,因此如今使用较少。
set集合:储存元素的特点是无序不可重复。无序表示的是存进去是这个顺序,取出来就不一定是这个顺序了。另外还有set集合没有下标,并且元素无法重复。
HashSet集合:HashSet在被new的时候,底层实际上new的是一个HashMap集合,向HsahSet集合中存储元素,实际上是存储到HashMap集合中了。HashMap集合是一个哈希表的数据结构。
SortedSet接口:被TreeSet集合实现,底层实际上是TreeMap,当new一个TreeSet集合的时候,底层实际上是new了一个TreeMap集合。向TreeSet集合中放数据时,实际上是将数据放入了一个TreeMap集合中了。TreeMap底层采用的时二叉树的数据结构。
Collection集合结构:
Map集合:了解前首先需要明白的是,Map集合和Connection集合没有关系。Map集合是以键值对形式储存数据,其中的key和value都是存储java对象的内存地址。所有的Map集合的key的特点是:无序不可重复。Map集合中常用的3个实现类:HashMap,HashTable,SortedMap。
HashMap集合:底层是哈希表数据结构,是非线程安全的。
HashTable集合:底层也是哈希表数据结构,但是线程安全的,其中所有的方法都带有synchronized关键字,效率较低,现在使用的较少了。
SortedMap接口:其key储存元素的特点是:无序不可重复,key部分自动按照大小顺序排列,成为可排序的集合。TreeMap为其实现类,该集合特点是:底层为二叉树的数据结构。
Map集合结构: