package:java.util
集合:是java中提供的一种容器,可以用来存储多个数据。
集合和数组的区别:
public boolean add (E e);//把给定的对象添加到当前集合中。 public void clear();//清空集合中的所有元素。 public boolean remove(E e);//把给定的对象在当前集合中删除。 public boolean contains(E e);//判断当前集合中是否包含给定的对象。 public boolean isEmpty();//判断当前对象是否为空。 public int size();//返回集合中元素的个数。 public Object[] toArray();//把集合中的元素存储到数组中
是一个接口,无法直接使用,需要使用Iterator的实现类,Collection接口中有一个方法,叫iterator(),这个方法返回的就是迭代器的实现类对象
boolean hasNext();//如果仍有元素可以迭代,则返回true E next();//返回迭代的下一个元素 Iterator<E> iterator();//返回此Collection的元素上进行迭代的迭代器
没有元素再取出元素会抛出异常。(NoSuchElementException)
底层使用的也是迭代器,使用for循环的格式,简化了迭代器的书写。
用来遍历数组和集合。
for(集合/数组的数据类型 变量名:集合名/数组名){ // }
是一种未知的数据类型,当我们不知道使用什么数据类型的时候,可以使用泛型,泛型也可以看成一个变量,用来接收数据类型。
E e: Element,代表未知类型,会把数据类型当做参数传递。
T t: Type
创建集合对象,不使用泛型:
好处:默认的类型就是Object类型,可以存储任意类型的数据
坏处:不安全,可能会引发异常
创建集合对象,使用泛型:
好处:
坏处:泛型是什么类型,就只能存储什么类型的数据
含有泛型的方法
修饰符<泛型> 返回值类型 方法名(参数列表(使用泛型)){ }
含有泛型的类
修饰符 class 方法名<泛型> { }
对于含有泛型的接口,实现类可以直接指定某一数据类型,也可以继续使用泛型。
当使用泛型类或者接口时,传递的数据中,泛型的类型不确定,可以通过通配符<?>表示,但是一旦使用泛型的通配符后,只能使用Object类中的共性方法,集合中元素自身方法无法使用。
基本使用:不知道使用什么类型来接收的时候,此时可以使用?,?表示未知通配符。此时只能接收数据,不能网该集合中存储数据。即不能创建对象使,只能作为方法的参数使用。