Java学习之集合(Collection接口)

时间:2022-07-31 19:01:04
集合类的由来:
  对象用于封装特有数据,对象多了需要存储,如果对象的个数不确定,就使用集合容器进行存储
集合特点:
  1、用于存储对象的容器
  2、集合长度可变
  3、不可以存储基本数据类型
集合体系的顶层Collection接口
Collection接口
  |--List:有序(存入和取出的顺序一致),元素都是索引,元素可以重复
    |--Vector:内部是数组数据结构,是同步的。增删,查询都很慢(已几乎不用)
    |--ArrayList:内部是数组数据结构,是不同步的。替代Vector。查询速度快
    |--LinkedList:内部是链接列表数据结构,是不同步的。增删元素的速度很快。
  |--Set:元素不能重复,是无序
    Set接口中的方法和Collection一致
    |--HashSet:内部数据结构是哈希表,是不同步的。
      |--LinkedHashSet:内部数据结构是哈希表和链接列表,简单说就是有序的HashSet
    |--TreeSet:内部数据结构是二叉树,是不同步的。
常见方法:
  1、添加
    boolean add(E e);
    boolean addAll(collection<? extends E> c);
  2、删除
    boolean remove(object o);
    boolean removeAll(collection<?> c);//将两个集合中的相同元素从调用removeAll的集合中删除
     void clear();//清空
  3、判断
    boolean contains(object o);
    boolean containsAll(collection<?> c);//是否全部包含c集合中的元素
    boolean isEmpty();//判断集合中是否有元素
  4、获取
     int size();
     iterator<E> iterator();//迭代器,取出元素的方式
 
  5、其他
    boolean retainAll(collection<?> c);取交集
    Object[] toArray();//将集合转成数组
 import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator; public class CollectionDemo { public static void main(String[] args) {
Collection coll = new ArrayList();
coll.add("abc1");
coll.add("abc2");
coll.add("abc3");
coll.add("abc4");
/*
* 注释快捷键:ctrl+/ 单行注释 shift+ctrl+/ 多行注释 alt+shift+j 文档注释
*/
/*
* Iterator it=coll.iterator(); while(it.hasNext()) {
* System.out.println(it.next()); }
*/
// 用for循环释放资源
for (Iterator it = coll.iterator(); it.hasNext();) {
System.out.println(it.next());
} Collection coll2 = new ArrayList();
coll2.add("abc1");
coll2.add("abc2");
coll2.add("abc5"); System.out.println("====================retainAll===============");
System.out.println(coll.retainAll(coll2));
for (Iterator it = coll.iterator(); it.hasNext();) {
System.out.println(it.next());
}
coll.clear();
coll.add("abc1");
coll.add("abc2");
coll.add("abc3");
coll.add("abc4"); Collection coll3 = new ArrayList();
coll3.add("abc1");
coll3.add("abc3");
coll3.add("abc5"); System.out.println("====================removeAll===============");
System.out.println(coll.removeAll(coll3)); for (Iterator it = coll.iterator(); it.hasNext();) {
System.out.println(it.next());
}
}
}

结果:

Java学习之集合(Collection接口)