可以存储不同类型的数据
是存储对象数据的容器
集合的长度可以发生变化
|-List 有序可重复
|------ArrayList
|------LinkList
|------Vector
|-Set 无序不可重复
|------HashSet
|------LinkHashSet
|------TreeSet
add(E e) 添加元素之后返回boolean值
Collection c = new ArrayList(); c.add("add");addAll(Collection c)
Collection<E> cc = new ArrayList<>(); cc.add((E) "addAll"); cc.addAll(c); clear() remove(Object o) 删除指定元素并返回boolean 值removeAll(Collection c)
c.removeAll(cc); //删除c集合中与cc的交集元素,也就是重复元素,删除的是c中的元素 retainAll(Collection c) //保留交集元素 size() // 查看元素的个数 isEmpty() // 是否为空contains(Object o) // 判断是否存在重复的元素,内部的实现是依赖equals方法
c.containsAll(c2)//c集合有包含c2集合中的所有元素 containsAll(Collection<?> c)toArray() //把集合中的全部元素存储到一个obj 的数组
iterator() //迭代器 返回的是实现类的对象
Collection c = new ArrayList(); Iterator it = c.iterator(); //返回一个迭代器 // iterator 实际 上返回的是iterator接口的实现类对象。boolean hasNext() 如果仍有元素可以迭代,则返回 true。 当前指针指向的位置是否有元素
public boolean hasNext() { return cursor != size; }//源码hasNext的实现 while(it.hasNext()){ // hasNext() 是否有元素可以遍历。 System.out.println("元素:"+ it.next()); //获取元素 }next() 返回迭代的下一个元素。 输出当前的元素,移动指针到下一个元素的位置
void remove() 从迭代器指向的 collection 中移除迭代器返回的最后一个元素(可选操作)。
//清空集合 的元素 while(it.hasNext()){ it.next(); it.remove(); }
add(int index, E element) //在指定位置插入指定元素
addAll(int index, Collection<? extends E> c) //添加另一个集合到本集合的末尾处
get(int index) //根据索引值获取元素
indexOf(Object o) //查找指定元素的索引值
lastIndexOf(Object o) //最后一次出现的位置
subList(int fromIndex, int toIndex) // 截取指定从fromindex 到toindex 的元素(包头不包含尾)
set(int index, E element) // 替换指定索引值得元素
listIterator() //父接口是literator
hasPrevious() //判断是否存在上一个元素。
previous() // 当前指针先向上移动一个单位,然后再取出当前指针指向的元素。
next(); // 先取出当前指针指向的元素,然后指针向下移动一个单位。
add //插入到当前指针的位置
set// 替代迭代器最后一次返回的元素
在迭代器迭代元素 的过程中,不允许使用集合对象改变集合中的元素个数,
如果需要添加或者删除只能使用迭代器的方法进行操作。
如果使用过了集合对象改变集合中元素个数那么就会出现ConcurrentModificationException异常。
