Java基础复习07Collection,迭代器,foreach,泛型

Collection(接口,集合所有单列集合的父类)

成员方法

   * boolean add(E e) 添加元素

   * boolean remove(Object o) 删除指定的元素

   * void   clear() 清空集合

   * int size() 获得集合元素的个数

 

 

迭代器(专门用来遍历集合的对象)

调用集合对象的Iterator<E> iterator() 方法获得

好处

   屏蔽的众多集合的内部实现,对外提供统一的遍历方式。

   可以用来遍历任何的单列集合。

 

 

常用方法

   * boolean hasNext() 

      * 判断当前指针指向的位置是否有元素

      * 如果有,返回true,返回false。  

   * E next() 

      * 先获得当前指针指向位置的元素

      * 然后再将指针下移指向下一个位置的元素。

 

迭代器使用注意事项

   * 如果集合中已经没有元素可迭代,仍然调用next方法,会抛出以下异常:

      * java.util.NoSuchElementException:没有元素异常。

 

 

并发修改异常概述和解决方案

需求:迭代自定义对象,在使用迭代器迭代集合的过程,当满足某个添加时,需要往集合中增删元素.

 

并发修改异常原因

   * 在使用迭代器遍历集合的过程中,调用了集合的add,clear方法增删了集合的元素。这是不允许的操作。

   * java.util.ConcurrentModificationException

 

如何解决并发修改异常的问题

   * 使用Iterator迭代器遍历,使用普通for循环(带索引的for循环)

   * 使用ListIterator迭代遍历。ListIterator是Iterator子类。

 

Listlterator it=new Listlterator();

fot循环里修改用这个:it.add();

 

增强for(1.5新特性,用来遍历集合和数组本质就是迭代器)

---for(数据类型 变量名: 集合名或数组名){

     

   }

泛型(1.5新特性,<>)---java中的泛型是伪泛型,编译后字节码文件没有,反射验证

--好处:可以将运行时错误转换为编译时错误。

   * 省去数据类型转换的麻烦。

看=号左边!

 

方法,类,接口都可以用泛型

<T> T

 

泛型上下限(了解)

   泛型的上下限 

      ? super Integer (自己) 泛型下限 只能接受Integer或Integer的父类类型。(从下往上找)

      ? extends Number(父类):泛型上限,只能接受Number 或 Number子类类型。(从上往下找)

/*求任意类型的和返回到是double*/

public static void main(String[] args) {

//System.out.println(getSum(13.2,5645646545L));

System.out.println(getSum(13.2,368));

 

}

public static <T extends Number> double getSum(T t1,T t2){

return t1.doubleValue() + t2.doubleValue();

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值