集合:
Collection是一个接口,是高度抽象出来的集合,它包含了集合的基本操作和属性。Collection包含了List和Set两大分支。
(1)List是一个有序的队列,每一个元素都有它的索引。第一个元素的索引值是0。List的实现类有LinkedList, ArrayList, Vector, Stack。
(2)Set是一个不允许有重复元素的集合。Set的实现类有HastSet和TreeSet。HashSet依赖于HashMap,它实际上是通过HashMap实现的;TreeSet依赖于TreeMap,它实际上是通过TreeMap实现的。
2、Map是一个映射接口,即key-value键值对。Map中的每一个元素包含“一个key”和“key对应的value”。AbstractMap是个抽象类,它实现了Map接口中的大部分API。而HashMap,TreeMap,WeakHashMap都是继承于AbstractMap。Hashtable虽然继承于Dictionary,但它实现了Map接口。
Iterator叫做“迭代器”,它提供一种方法访问一个容器(container) 对象中各个元素,而又不需暴露
该对象的内部细节由于Collection接口继承了Iterator,所以所有集合对象都可以被迭代,Collection接口内定义 了iterator()方法,能获得一个Iterator迭代器,从而实现对集合的迭代
ArrayList和LinkedList的区别
通过对比ArrayList和LinkedList,不难发现,其实不管是ArrayList也好,LinkedList也罢, 它们的本质区别不在于几个方法的存在与否,对于ArrayList来说, 由于遍历的便捷,提供了indexOf()方法,对于LinkedList来说,由于增删的便捷,提供了诸如addFirst()、addLast()、removeFirst()、removeLast()等方法。但总体来看,它们的功能是一致的,无非是对数据元素的增删改查、获得子集合、访问属性等等。所以看问题要看本质,它们的区别在于实现的数据结构不同,ArrayList实现了可变数组,而LinkedList实现了 链表,这将导致它们适合于不同的场合,如果某系统查询很多而数据变动很少,最好使用ArrayList而不是LinkedList,如果系统数
据经常做增加删除的操作,则应当选择L inkedList