//方法二:双重for循环,对集合进行双重遍历,外层循环拿出一个元素与内层循环的每一个元素进行比较,要是发现重复的元素就移除该元素。//需要注意的是,内层循环的开始下标要要对外层循环的开始下标加一,因为外层循环的元素不能和自身相比。//找到一个相同元素进行删除,需要将内层循环的指标进行自减,因为删除一个元素,集合的长度就会变小,后面没有进行比较的元素会因为删除前面的元素没有和外层循环的元素进行判断,就会发生漏判情况。for(int i =0; i <list2.size(); i++){for(int j = i+1; j<list2.size(); j++){if(list2.get(i)==list2.get(j)){
list2.remove(j);//移除一个元素,就要将指标减少一下
j--;}}}
Vector类
Vector集合底层和ArrayList集合一样,都是以数组存放元素,但是Vector对于线程是安全的,效率比ArrayList集合低。
Vector集合中有特有的功能,有自己特有的迭代器。
public void addElement(E obj)
将指定元素添加到Vector集合的末尾
public E elementAt(int index)
返回指定位置的元素
public boolean removeElement(Object obj)
移除Vector集合中的第一个匹配的元素,如果集合中不包含该元素,则元素保持不变
public void removeElementAt(int index)
移除Vector集合中指定索引上的元素
public void setElementAt(E obj, int index)
将此向量指定的index处的组件设置为指定的对象
public Enumeration<E> elements()
返回此向量的组件的枚举
LinkedList集合底层是通过链表存储元素,所以该集合类的特点是:查询慢,增删快。
LinkedList类特有功能:
public void addFirst(E e)
将指定元素插入到此列表的开头
public void addLast(E e)
将指定元素插入到此列表的结尾
public E getFirst()
得到该列表的第一个元素
public E getLast()
得到该列表的最后一个元素
public E removeFirst()
移除并返回此列表的第一个元素
public E removeLast()
移除并返回此列表的最后一个元素