首页 > 解决方案 > 如何获取新数组中的数据,但不是全部(Java)

问题描述

我有这样的数组

int[] array = {5, 100, 20, 66, 16};
    price = new int[] {5, 100, 20, 66, 16};
    for(int i = offset; i < price[price.length - readLength]; i++) {
        price[i] = price[i] * (discount / 100);
        System.out.println(price[i]);

    }

在此之后我只需要使用旧数组的三个数字来获取新数组。我该怎么做?之后我需要这样的东西 [100,20,66]

标签: java

解决方案


你可以Arrays.copyOfRange用来得到这个:

price = Arrays.copyOfRange(array, 1, 4)然后你可以对每个元素进行操作。

或者您可以使用以下方法从原始数组中获取一个新数组:

double[] discounted_price = 
    Arrays.stream(array,1,4).
                  mapToDouble(el ->el - el*(discount/100.0)).toArray();

您不需要使用副本来传递给流,您可以自行指定from, toArrays.stream

@WJS 是正确的,您可能需要根据您打算如何使用折扣从价格中减去价格*折扣。


推荐阅读