Java8集合篇之Iterable

本文深入探讨了Java集合框架的基础结构,包括Collection,Iterable,Map等核心接口,并重点介绍了Java 8对Iterable接口的增强,如新增的forEach和spliterator方法,以及Iterator接口中的forEachRemaining方法,这些改进增强了集合操作的效率和并行处理能力。

Java中关于集合框架:

首先简单介绍一下,三个主要接口是:Collection,Iterable,Map,所有的集合实现类都实现自Collection以及Collection子类,而Collection则继承自Iterable接口,HashMap,TreeMap,LinkedHashMap实现了Map。 Java8中关于Iterable做了很小的改动,增加了两个默认方法。 1,forEach方法**

//循环输出
default void forEach(Consumer<? super T> action) {
        Objects.requireNonNull(action);
        for (T t : this) {
            action.accept(t);
        }
    }
     //使用,将numbers循环输出
 List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8, 9);
 numbers.forEach(integer -> System.out.println(integer));

2,spliterator方法


//分割,增加并行处理能力
default Spliterator<T> spliterator() {
        return Spliterators.spliteratorUnknownSize(iterator(), 0);
    }


顺便介绍一下Iterator中增加的一个默认方法
/**
 * Description
 * @Author lht
 * @Date 2018/12/5 下午7:54
 **/
public class MainIterator {

    public static void main(String[] args) {

        //Iterator中Java8提供的新特性:源码如下:
        /**
         *
         * Performs the given action for each remaining element until all elements
         * have been processed or the action throws an exception.  Actions are
         * performed in the order of iteration, if that order is specified.
         * Exceptions thrown by the action are relayed to the caller.
         *
         * @implSpec
         * <p>The default implementation behaves as if:
         * <pre>{@code
         *     while (hasNext())
         *         action.accept(next());
         * }</pre>//相当于迭代循环输出
         * @param action The action to be performed for each element
         * @throws NullPointerException if the specified action is null
         * @since 1.8
         *
        /**
         default void forEachRemaining (Consumer < ? super E > action){
            Objects.requireNonNull(action);
               while (hasNext())
                   action.accept(next());
         }
         */
        //使用方法
        List<String> arr=new ArrayList<>();
        arr.add("hello");
        arr.add(("world"));
       	//下一篇中forEachRemaining中会有比较实用的使用
        arr.iterator().forEachRemaining(str-> System.out.println(str));
       }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

技术砖家--Felix

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

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

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

打赏作者

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

抵扣说明:

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

余额充值