day02【Collection、泛型】

Collection 接口
单列集合的顶层接口,定义了所有单列集合的共有功能.
public boolean add(E e) 把指定对象添加到集合中
public void claer() 清空集合中所有元素
public boolean remove(E e) 把给定的对象在当前集合中删除
public boolean contains(E e) 判断当前集合中是否包含给定的对象
public boolean isEmpty() 判断当前集合是否为空
public int size() 返回集合中元素个数
public Object[] toArray() 把集合中的元素,存储到数组中
public Iterator<E> iterator (); 获取集合对应的迭代器,遍历集合中的元素.
集合框架
Collection是根接口,主要分为List和Set.
  • List特点:有序,可以重复.
常用实现类:ArrayList LinkedList
  • Set特点:无序,不可重复.
常用实现类:HashSet TreeSet

List集合的Contains底层原理
拿参数和调用方法的集合中的每一个元素使用equals进行比较.
  • (如果没有调用方法的对象没有重写equals,比较的是地址值.)
List集合的remove(E e)底层原理
拿参数和调用方法的集合中的每一个元素使用equals进行比较,相同就删除.
  • (如果没有调用方法的对象没有重写equals,判断的依据是地址值.)
Iterator接口
java.util.Iterator Iterator 也属于Java集合中的一员,但是用于迭代访问.
迭代
Collection集合元素的获取方式.先判断,如果有,就获取.继续判断.这种方式成为迭代
迭代器作用是,遍历集合.
迭代器
public Iterator<E> iterator();获取集合对应的迭代器,遍历集合中的元素.
每个Collection集合都有一个iterator()方法.
迭代器使用
E next(); 获取元素,获取之后指向下一个元素
boolean hasNext(); 判断是否还要元素遍历
迭代器原理
迭代器使用指针跟踪元素
1.先进行判断是否有元素可以迭代 hasNext();
2.可以遍历,执行next()方法,获取下一个元素,并且指针后移
集合操作异常

for each循环
专门用来遍历Collection集合与数组的.
  • 格式:for(用来接收数组或集合中元素的数据类型;被遍历的集合或数组){操作 接收变量;}

泛型
  • 定义:可以在类和方法中预支的使用未知类型.
  • 好处:Collection集合支持各种存储各种对象,但是为了方便以后通常只会存储一种类型.为集合规定泛型,可以在编译阶段及时检查.
  • 泛型可以定义在类,方法,接口当中.将数据类型作为参数进行传递.
  • 如果不规定泛型,默认添加Object类型.
泛型定义的类
格式:修饰符 class 类名称 <泛型类型 >{ }
例如:
 class ArrayList<E>{ 
    public boolean add(E e){ }
  public E get(int index){ }
    ....
}
泛型在定义的时候不具体!
在创建对象的时候确定泛型类型!
含有泛型的方法
格式:修饰符 <泛型类型> 返回值类型 方法名(参数){ }
在调用方法的时候确定泛型类型.
含有泛型的接口
格式:修饰符 interface 接口名 <泛型类型>{ }
1.定义子类时确定泛型类型.
2.定义子类时不确定,创建子类对象时确定具体类型.
泛型的通配符
当使用泛型类或者接口时,传递的数据中,泛型类型不确定,可以通过通配符<?>表示。但是
一旦使用泛型的通配符后,只能使用Object类中的共性方法,集合中元素自身方法无法使用。
受限泛型
  • 泛型的上限
格式:类型名称<?> extends 类 对象名
意义:只能接受该类及其子类
  • 泛型的下线
格式:类型名称<?> super 类 对象名
意义:只能接受该类及其父类


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值