返回方形数字的intStream

时间:2018-03-21 08:36:50

标签: java

public static void randomSquare() 
{

    int[] array = new Random().ints(10).toArray();
    for (int i=0; i<array.length; i++) {
        System.out.print(i + " ");
    }
}

我目前有这种方法可以返回随机数。我如何修改它,以便它返回一个10平方数的流?

3 个答案:

答案 0 :(得分:3)

如果要对随机数进行平方,请更改

int[] array = new Random().ints(10).toArray();

int[] array = new Random().ints(10).map(x -> x*x).toArray();

但是,这可能会导致整数溢出,因此您可能希望限制随机整数的范围。例如:

int[] array = new Random().ints(10,1,100).map(x -> x*x).toArray();

此外,您可以先启动Random,例如

static final Random RAND = new Random();

然后使用

int[] array = RAND.ints(10,1,100).map(x -> x*x).toArray();

如果你想改善表现。

答案 1 :(得分:0)

如果您使用的是Java 8,则可以将代码行更改为:

req.session

但是目前你的方法并没有返回任何内容。您使用void关键字。虚空不会返回任何东西。它告诉编译器该方法没有返回值。 你可以使用int []来返回int数组。

int[] array = new Random().ints(10).map(x -> x*x).toArray();

答案 2 :(得分:0)

我正在添加Eran's answer

如果您不想限制范围,可以使用BigInteger

List<BigInteger> bigIntegers = new Random().ints(10)
        .mapToObj(i ->{
            BigInteger intAsBigInteger = new BigInteger(String.valueOf(i));
            return intAsBigInteger.multiply(intAsBigInteger);
        })
        .collect(Collectors.toList());
System.out.println(bigIntegers);