集册 Java实例教程 从迭代器创建一个集合。

从迭代器创建一个集合。

欢马劈雪     最近更新时间:2020-01-02 10:19:05

676
从iterable创建集合。

/**

 * Copyright (c) 2002-2013 "Neo Technology,"

 * Network Engine for Objects in Lund AB [http://neotechnology.com]

 *

 * This file is part of Neo4j.

 *

 * Neo4j is free software: you can redistribute it and/or modify

 * it under the terms of the GNU General Public License as published by

 * the Free Software Foundation, either version 3 of the License, or

 * (at your option) any later version.

 *

 * This program is distributed in the hope that it will be useful,

 * but WITHOUT ANY WARRANTY; without even the implied warranty of

 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the

 * GNU General Public License for more details.

 *

 * You should have received a copy of the GNU General Public License

 * along with this program.  If not, see <http://www.gnu.org/licenses/>.

 */

//package com.nowjava;


import java.util.ArrayList;
/**来自 
 时 代 J a v a 公 众 号 - N o w J a v  a . c o m**/

import java.util.Collection;


import java.util.Iterator;

import java.util.List;


public class Main {

    /**

     * Creates a collection from an iterable.

     *

     * @param iterable The iterable to create the collection from.

     * @param <T> The generic type of both the iterable and the collection.

     * @return a collection containing all items from the iterable.

     */

    public static <T> Collection<T> asCollection(Iterable<T> iterable) {

        List<T> list = new ArrayList<T>();

        addToCollection(iterable, list);

        return list;

    }


    /**

     * Adds all the items in {@code iterator} to {@code collection}.

     * @param <C> the type of {@link Collection} to add to items to.

     * @param <T> the type of items in the collection and iterator.

     * @param iterator the {@link Iterator} to grab the items from.

     * @param collection the {@link Collection} to add the items to.

     * @return the {@code collection} which was passed in, now filled

     * with the items from {@code iterator}.

     */

    public static <C extends Collection<T>, T> C addToCollection(

            Iterator<T> iterator, C collection) {
            /* 
            *来 自
             N o w  J a v a  .   c o m
            */

        while (iterator.hasNext()) {

            collection.add(iterator.next());

        }

        return collection;

    }


    
展开阅读全文