集合类的基本接口是:Collection   基本的链式列表有:linkedList ArrayList 2。迭代器:   把迭代器可以看作是在两个元素之间的指针。不能同时两次调用remove() linkedList的主要使用方法:.add();添加一个对象(始终是加在该集合的最后) .iterator()产生一个迭代器通过这个迭代器的方法 hasNext()  next()  remove()对列表进行操作   要使用remove()必须要先调用next()方法,删除的元素是next前面的元素  .listIterator()产生一个迭代器该迭代器比前一个有更多的方法   产生ListIterator对象通过该对象的方法可以对集合进行向前、向后的遍例         .hasprevious()、.previous()      使用.add()方法可以在集合的任意位置增加对象         iter.next();         iter.add("a");跳过第一个元素,将a添加到第二个元素之前。      使用.set()方法可以修改对象         取代通过调用next或者previous方法而返回的上一个元素 .listIterator(int)产生一个迭代器      只是该迭代器的位置在int的那个位置。      .toString()方法会遍例打印出所有的元素,方便调试 .contains(obj) 判断是否有有该对象 .get(int)(从0开始)     不可以用循环来遍例元素,因为运行效率非常低,每次都是从头开始搜索的 .size() 建议:随机访问用数组或者是ArrayList。使用链接式列表的惟一原因是为了尽量减少      在列表的中间插入和删除元素时遇到的困难。 ArrayList 与 Vector Vector实现了同步 
       ArrayList 没有实现同步Arraylist与Linkedlist。 两者都是简单的线性序列,都具有相同的接口和外部行为。事实在做某些操作的时候,它们的效率会有很大的区别。对于Arraylist,随机访问是一种时间恒定的操作,不论你访问哪个元素,所需要的时间是相同的。然而对于Linkedlist,随机访问和选取元素的代价会很大,但是另一方面,如果你要在这个序列中间插入元素的话,Linkedlist的效率会比Arraylist的高出许多。在设计阶段你可以用Linkedlist,到了性能调整阶段,你可以用Arraylist。因为两者的基类都是list