一、Collection集合

1. Collection集合介绍

Collection:单列集合(接口)
List:(接口)
特点:
1.有索引
2.可以重复
3.有序(添加的顺序和获取的顺序一致)
实现类:
ArrayList(底层实现是数组)
LinkedList(底层实现是链表)
Vector
Set:(接口)
特点:
1.没有索引
2.不能重复
实现类:
TreeSet 3.无序
HashSet 3.无序(添加顺序和获取顺序不一定一致)
LinkedHashSet 3.有有序

学习:
	学习顶层,使用底层。
  1. Collection集合的常用方法
    boolean add(E e);//新增
    boolean isEmpty();//是否为空
    boolean contains(Object obj);//是否包含
    boolean remove(Object obj);//删除
    void clear();//清除
    int size()//长度
    Object[] toArray();//转换为数组

二、Iterator迭代器

  1. Iterator接口介绍
    1.获取迭代器对象
    Iterator i = 集合对象.iterator();
    2.判断是否有下一个元素
    i.hasNext();
    3.获取元素
    i.next();
  2. 用Iterator迭代器遍历集合的代码实现
  3. Iterator迭代器使用的注意事项
    用迭代器遍历Collection集合的时候,不能通过集合对象 对集合进行增删操作。
    如果要删除通过迭代器删除

三、增强for循环

  1. 增强for循环的使用介绍
    增强for循环的底层就是迭代器。
    可以遍历集合、数组
    格式:
    for(数组的数据类型/集合的泛型 变量名:要遍历的集合/数组){
    sout(变量名);
    }

四、泛型

  1. 泛型的概念和好处
    泛型是未知的数据类型。
  2. 定义和使用含有泛型的类
    public class 类名{
    //可以是成员变量的类型
    E 变量名;
//可以是成员方法的参数类型
	public E 方法名(E e){}

}

什么时候确定泛型的类型:创建对象的时候确定泛型的类型,
如果创建对象的时候,没有确定,那么默认泛型是Object类型
类名 对象名 = new 类名();

  1. 定义和使用含有泛型的方法
    单独的某一个方法中使用泛型:
    修饰符 返回值 方法名(E e){
    }
    修饰符 static 返回值 方法名(E e){
    }
  2. 定义和使用含有泛型的接口
    public interface Inter{}

使用方式一:
public class 类名 implements Inter{

}

使用方式二:
public class 类名 implements Inter{}
类名 对象名 = new 类名<>();
5. 泛型通配符
通配符:?
作为方法的参数: ArrayList<?> list 或者 ArrayList list
作为方法的返回值:ArrayList<?> list 或者 ArrayList list

上限限定泛型的写法: ? extends E //可以是E类型或者是E类型的子类类型
下限限定泛型的写法: ? super E //可以是E类型或者是E类型的父类类型