Java学习笔记之Iterator接口

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/yangshuaionline/article/details/85601998

相关:
Collection
ListIterator
定义:集合上的迭代器。基于JDK1.2
函数:

  1. boolean hasNext();如果迭代器含有更多元素,则返回true。常用的方法,遍历的时候一般用作条件
  2. E next();返回遍历到的元素。如果迭代器么有更多元素,抛出NoSuchElementException。
  3. 第三个方法是一个defaul函数:
    default void remove() {
       	throw new UnsupportedOperationException("remove");
    }
    
    从底层集合中移除此迭代器的最后一个元素,每次调用next方法的时候,只能调用一次。
    List<String> linkedList = new LinkedList<>();
    for(int i =0;i<100;i++){
        linkedList.add("aaa"+i);
    }
    Log.w("打印"," "+linkedList.size());
    Iterator<String> iterator = linkedList.iterator();
    while (iterator.hasNext()){
        if(iterator.next().equals("aaa0")) iterator.remove();
    }
    Log.w("打印"," "+linkedList.size());
    
    输出结果:
    W/打印:  100
    W/打印:  99
    
    规定A:如果iterator不支持remove方法,抛出UnsupportedOperationException。规定B:如果尚未调用next,或者最后一次调用next后调用了remove(next返回false),抛出IllegalStateException。
  4. 第四个方法是一个default函数:
    default void forEachRemaining(Consumer<? super E> action) {
        Objects.requireNonNull(action);
        while (hasNext())
            action.accept(next());
    }
    
    JDK1.8特性,对剩余的每个元素进行指定的操作,直到处理完所有元素或引发异常。规定A:如果指定行为为null,抛出NullPointerException。

猜你喜欢

转载自blog.csdn.net/yangshuaionline/article/details/85601998