Lambda表达式初始化数组 [英] Lambda expression to initialize array

查看:218
本文介绍了Lambda表达式初始化数组的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

有没有一种方法可以通过使用简单的lambda表达式来初始化数组或集合?

Is there a way to initialize an array or a collection by using a simple lambda expression?

类似

// What about this?
Person[] persons = new Person[15];
persons = () -> {return new Person()};

// I know, you need to say how many objects
ArrayList<Person> persons = () -> {return new Person()};

推荐答案

当然-我不知道它有多有用,但是它肯定是可行的:

Sure - I don't know how useful it is, but it's certainly doable:

import java.util.*;
import java.util.function.*;
import java.util.stream.*;

public class Test
{
    public static void main(String[] args)
    {
        Supplier<Test> supplier = () -> new Test();
        List<Test> list = Stream
            .generate(supplier)
            .limit(10)
            .collect(Collectors.toList());
        System.out.println(list.size()); // 10
        // Prints false, showing it really is calling the supplier
        // once per iteration.
        System.out.println(list.get(0) == list.get(1));
    }
}

这篇关于Lambda表达式初始化数组的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆