单列集合根接口:Collection
|------>子接口:List
|------>子接口:Set
List集合接口实现类:(常用)ArrayList,LinkedList,Vector
此集合允许存储重复的元素,存入和取出顺序一致。元素的取出通过集合调用Collection的迭代器方法:iterator()获取迭代器对象Iterator,再通过迭代器对象的方法hasNext() ,next()来判读是否有元素,和取出元素。同时List集合中,还有一个特有的迭代器就是ListIterator();集合调用listIterator()方法,获取ListIterator对象,然后取出集合中的元素,此迭代器相比较Iterator而言,是在迭代的同时,可以对集合进行修改。Vector集合还可以调用elements(),获取枚举对象Enumeration来取元素。
Set集合接口实现类:(常用)HashSet,LinkedHashSet,TreeSet
此集合不允存储重复的元素,存入和取出顺序不一致。
HashSet集合:元素的存储会调用元素的hashCode()和equals()方法,判断是否是相同元素,相同的元素则不存储,所以此集合中存储的元素一般要覆写hashCode(),equals()方法。元素的取出只能通过迭代器Iterator来取元素。
LinkeHashSet集合是HashSet的子类,此集合可以实现元素的存取顺序一致。
TreeSet集合:二叉树数据结构,会对元素进行自然排序,这也是存储和元素实现Comparable接口的原因,此集合中存储的元素都要实现Comparable接口,并覆写compareTo()方法,也可以在TreeSet集合中传入自定义的比较器,来实现元素排序。自定义的比较器要实现Comparator接口并覆写compare()方法,如:TreeSet<?>ts=new TreeSet<?>(new CompByName);元素的取出也只能使用Iterator迭代器。
双列集合根接口:Map
Map集合接口实现类:(常用)HashMap,LinkedHashMap,TreeMap
此集合中存储的是键值对,不允许键的重复,保证键的唯一性,键相同值会被覆盖,元素的存取顺序不一致。
HashMap集合:此集合与HashSet相似,元素的存储会调用键的hashCode(),equals()方法,来判断元素是否相同,所以此集合中存储的键也要覆写hashCode(),equals()方法。元素的取出可以调用entrySet(),keySet()将集合转为Set集合,再取元素。
LinkedHashMap集合可以实现存取顺序的一致。
TreeMap集合:此集合与TreeSet相似,元素的存储会调用键的CompareTo()方法,键要实现Comparable接口,或者传入比较器,类似于TreeSet.自定义比较器要实现Comparator接口,并覆定compare()方法,元素的取出可以调用entrySet(),keySet()将集合转为Set集合,再取元素。
|