java容器分为3类:Set、List、Map
其中Set和List两类容器实现了Collection接口
Set:因为set底层由Map实现,所以set里的元素也不可重复,说明存入Set的元素在内部储存空间内没有排序之分,其实现类为HashSet
List:list里的元素可以重复,元素在list内部储存空间有序,实现类有ArrayList,LinkedList,和Vector
ArrayList,LinkedList,和Vector的区别:
ArrayList底层由数据结构由数组实现,优点为查询快,但是添加、删除元素慢
LinkedList底层由数据结构由连表实现,优点为添加、删除元素快,但是查询慢
Vector底层也是有数组实现,但与ArrayList的区别在于Vector是线程安全的,而ArrayList不是
Map是单独的接口,其特点是存储的元素一般是以 键值对 的方式进行存储,通过操作 键 来存储、获得、修改 值 ;map中键不能重复,值可以重复。
Dictionary接口定义了HashTable类,意义与操作同HashMap一样,不同点在于HashTable为线程安全的,而Hashmap为线程不安全。
HashMap底层hashcode实现,每一个元素都会有特定的算法(如,除数留余法)生成一个hashcode,hash地址冲突使用了链地址法
而TreeMap底层由红黑树实现,所以TreeMap的 键 会变得有序,,若需要一个有序的结果,就可以使用TreeMap
迭代器Iterator
在Set、Map中由于无序,不能通过for循环遍历,则可以通过Iterator对象来实现遍历
原文:https://www.cnblogs.com/twilightDF/p/13631744.html