①集合:单列结合和双列结合,单列结合有List、Set。双列结合有Map
-----list:有序存储,可以重复,添加是执行add()方法,当重复添加时是多个索引执行同一个对象,同时List可以指定位置添加,add(int index ).获取指定位置的元素 get(int index).
------ArrayList:数组实现,查找快,增删慢:由于是数组实现,在增删是牵涉到数组的增容以及拷贝元素,所以慢。因为是可以直接按索引进行查找的所以检索的时会 快一点。
-------LinkedList:链表的形式体现的,增删快、查找慢。链表的形式实现机制使得在增加时只要让前一个元素记住自己,删除时让豁免一个元素记住自己就行。但是在 查询的时候要进行遍历,所以查询的会慢。
-------Vector:和ArrayList原理相同,但线程安全的只是效率低。
--------set:无序的,不可重复。set在判定是否重复的时候是调用的equals方法,如果已经存在一个元素A,那么在插入一个与A的rquals方法为true的B是返回的Boolean 值为FALSE,无法添加。
------HashSet:线程不安全,底层是以哈希表实现的,存取速度快。
-------TreeSet:树形数据结构,默认对元素进行排序。
②集合:双列集合,Map:已键值对的形式来进行存储。key是唯一的,不可重复,value可以重复。
------HashMap:底层是以哈希表实现的,存取速度快,线程不安全。
------TreeMap:树形结构,默认对元素进行排序。
------HashTable:底层也是用了哈希表,存取的速度快,储存的元素是无序的。
也欢迎登录我的个人网站,里面有更多的文章及技术咨询在等你:http://www.guangmuhua.com