java(15) Collection集合

一、集合体系图

二、集合

1、什么是集合?

 数组的长度是固定的,添加元素如果超出会出现异常

集合能够存储任意对象,且长度是可变的,随着元素的增加而增加,随着元素的减少而减少

2、数组和集合的区别?

A、数组可以存放基本数据类型,也可以存储引用数据类型

基本数据类型存的是值,引用数据类型存的是地址值,但是在创建的时候就会规定存储的类型

B、集合只能存储引用数据类型,但是也可以存储基本数据类型(装箱),在存储基本数据类型时会自动转换为包装类

集合在没有明确的泛型限定之前,默认存储的是Object类的

三、Collection集合的常用方法

  java.util包

  Collection 是接口,不能实例化对象,使用多态技术创建子类对象,使用父类引用指向子类对象,调用父类方法

基本功能:

  1. boolean add(Object obj) 添加
  2. boolean remove(Object obj) 删除 指定的元素     
  3. void clear() 清空
  4. boolean contains(Object obj) 包含     --------》内部是调用equals()方法
  5. boolean isEmpty()是空 返回true  非空返回false
  6. int size() 大小

带All的功能:

  • boolean addAll(Collection c)    将传入集合的每一个元素 添加到调用集合中,

           --------》add()方法当传入集合时,把添加的集合当做一个元素,添加到调用集合中

  • boolean retainAll(Collection c)   取交集 将交集存储到调用集合中 没有交集 调用的集合被清空

          --------》   返回值 true false 有何决定?

                          如果 调用的集合 由于调用而发生改变 则返回true

                          如果 调用的集合 和传入的集合完全相同(调用的集合没改变) 返回false

  • boolean removeAll(Collection c)调用的集合中 删除了 传入的集合的交集,若没有交集,调用的集合被删除
  • boolean containsAll(Collection c) 判断调用集合 是否包含 传入集合 包含 返回true 不包含返回false

其他的功能:

  • Object[] toArray() 将集合转成数组
  •  Iterator iterator() 通过方法的调用 获取Iterator迭代器对象

四、遍历集合的方式

方式1:Object[] toArray() 将集合转成数组 

                 普通for 循环 遍历集合 toArray()方法 将集合转成Object[]数组

方式二、增强for循环

格式
                for(元素类型 变量名:要遍历的范围){
                    循环体语句
                }

缺点:丢掉了索引,就不能根据索引获取元素了

方式三:Iteraor迭代器

Iterator it=集合.iterator();

while(it.hasNext()){

System.out.println(it.next());

}

*****在迭代的时候不要操作该集合,否则会出现ConcurrentModificationException(多线程异常)

猜你喜欢

转载自blog.csdn.net/weixin_42496678/article/details/81517077