Collection与泛型的一些问题

Collection常用的API

Collection是所有单列集合的副接口,因此在Collection中定义了单列集合(List和Set)通用的一些方法,这些方法用于操作所有的单列集合。方法如下:
1.public boolean add(E e):把给定的对象添加到当前集合中。
2.public void clear():清空集合中所有的元素。
3.public boolean remove(E e):把给定的对象在当前集合中删除。
4.public boolean contains(E e):判断当前集合中是否包含给定的对象。
5.public boolean isEmpty():判断当前集合是否为空。
6.public int size():返回集合中的元素的个数。
7.public Object[] toArray():把集合中的元素,存到数组中。

Iterator迭代器

在程序开发中,经常需要便利集合中的所有元素。于是针对这种需求,JDK专门提供了一个接口
java.util.Iterator。与Collection和Map接口不同,这两个接口主要用于存储元素,而Iterator主要用于遍历Collection中的元素,因此Iterator对象也被称为迭代器。
Iterator接口的常用方法如下:
public E next():返回迭代的下一个元素。
public boolean hasNext():如果仍有元素可以迭代,则返回true。
步骤如下:
//使用多态方式创建对象
Collection coll = new ArrayList():
//使用迭代器遍历 每个集合对象都有自己的迭代器
Iterator it = coll.iterator();
//泛型指的是 迭代出 元素的数据类型
while(it.hasNext()){//判断是否有迭代元素
String s=it.next();//获取迭代出的元素
System.out.println(s);

泛型
1.为什么要使用泛型?
集合中是可以存放任意对象的,只要对象存储集合后,那么他们都会被提升为Object类型。当我们再取出一个对象时,并且进行相应的操作,这时必须进行类型转换。但由于集合中什么类型的元素都可以存储。导致取出时强转引发运行时ClassCastException。于是泛型语法应运而生,再设计API时可以指定类或方法支持泛型,这样我们使用API时也变的更为简洁,并且得到编译时期的语法检查。
泛型:可以在类或方法中预支的使用未知的类型。
tips:一般在创建对象时,将未知的类型确定为具体的类型。当没有指定泛型时,默认类型为Object类型。
2.使用类型的好处:
将运行时期的ClassCastException,转移到了编译时期的编译失败。
避免了类型强转的麻烦。
tips:泛型是数据类型的一部分,我们将类名与泛型合并到一起看做数据类型。
3.泛型的定义与使用
a.定义和使用含有泛型的类:
定义格式:
修饰符 class 类名<代表泛型的变量>{}
使用泛型:即什么时候确定泛型。
在创建对象的时候确定泛型:
例如,ArrayList list=new ArrayList ():此时,变量E的值就是String类型。在这里插入图片描述
在这里插入图片描述
b.含有泛型的方法:
定义格式:
修饰符 <代表泛型的变量> 返回值的类型 方法名(参数){}
使用格式:调用方法时确定反泛型的类型。

在这里插入图片描述
c.含泛型的接口:
定义格式:
修饰符 interface接口名<代表泛型的变量>{}
使用格式:c1、定义类时确定泛型的类型
c2、始终不确定泛型的类型,直到创建 对象时,确 定泛型的类型

4.泛型通配符
当使用泛型类或者接口时,传递的数据中,泛型类型不确定,可以通过通配符<?>表示。但一旦使用通配符后,只能使用Object类中的共性方法,集合中的元素的自身方法无法使用。
泛型通配符的基本使用:
泛型通配符:不知道是用什么类型来接收的时候,此时可以使用?,?表示未知通配符。此时只能接收数据,不能往该集合中存储数据。
在这里插入图片描述
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/wtf928/article/details/88786895