Java学习笔记12

Collection集合

常用功能

  • public boolean add(E e):把给定的对象添加到当前集合中

  • public void clear():清空集合中所有的元素

  • public boolean remove(Object o):把给定的对象在当前集合中删除

  • public boolean contains(Object o):判断当前集合中是否包含给定的对象

  • public boolean isEmpty():判断当前集合是否为空

  • public int size():返回集合中元素的个数

  • public Object[] toArray():把集合中的元素,存储到数组中

Iterator迭代器

java.util.Iterator接口:迭代器(对集合进行遍历)

Iterator迭代器,是一个接口,我们无法直接使用,需要使用Iterator接口的实现类对象,获取实现类的方式比较特殊

Collection接口中有一个方法,叫iterator(),这个方法返回的就是迭代器的实现类对象

Iterator<E> iterator() 返回在此 collection 的元素上进行迭代的迭代器。

两个常用方法

boolean hasNext() 如果仍有元素可以迭代,则返回 true。

判断集合中还有没有下一个元素,有就返回true,没有就返回false

E next() 返回迭代的下一个元素。

取出集合中的下一个元素

迭代器的使用步骤(重点)

  1. 使用集合中的方法iterator()获取迭代器的实现类对象,使用Iterator接口接收(多态)

    注意:

    Iterator<E>接口也是有泛型的,迭代器的泛型跟着集合走,集合是什么泛型,迭代器就是什么泛型

  2. 使用Iterator接口中的方法hasNext判断还有没有下一个元素

  3. 使用Iterator接口中的方法next取出集合中的下一个元素

增强for

增强for循环:底层使用的也是迭代器,使用for循环的格式,简化了迭代器的书写

是JDK1.5之后出现的新特性

Collection<E>extends Iterable<E>:所有的单列集合都可以使用增强for

public interface Iterable<T>实现这个接口允许对象成为 "foreach" 语句的目标。

用来遍历集合和数组

格式:

 for (集合/数组的数据类型 变量名 : 集合名/数组名){
             System.out.println(变量名);
         }

泛型

创建集合对象,不使用泛型

好处:

集合不使用泛型,默认的类型就是Object类型,可以存储任意类型的数据

弊端:

不安全,会引发异常

创建集合对象,使用泛型

好处:

  1. 避免了类型转换的麻烦,存储的是什么类型,取出的就是什么类型

  2. 把运行期异常(代码运行之后会抛出的异常),提升到了编译期(写代码的时候会报错)

弊端:

泛型是什么类型,只能存储什么类型的数据

定义含有泛型的类

 public class GenericClass<E> {
     private E name;
 ​
     public E getName() {
         return name;
     }
 ​
     public void setName(E name) {
         this.name = name;
     }
 }

定义含有泛型的方法

泛型定义在方法的修饰符和返回值类型之间

格式:

修饰符 <泛型> 返回值类型 方法名(参数列表(使用泛型)){

方法体;

}

含有泛型的方法,在调用方法的时候确定泛型的数据类型

传递什么类型的参数,泛型就是什么类型

含有泛型的接口

使用方式:

  1. 定义接口的实现类,实现接口,指定接口的泛型

  2. 接口使用什么泛型,实现类就使用什么泛型,类跟着接口走

    就相当于定义了一个含有泛型的类,创建对象的时候确定泛型的类型

泛型通配符

泛型的通配符:

?:代表任意的数据类型

使用方式:

不能创建对象使用

只能作为方法的参数使用

不知道使用什么数据类型,可以使用泛型的通配符?来接收数据类型

注意:

泛型没有继承概念的

高级使用——受限泛型

泛型的上限限定:?extends E 代表使用的泛型只能是E类型的子类/本身

泛型的下限限定:?super E 代表使用的泛型只能是E类型的父类/本身

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

L、fly

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值