java - 如何获取新数组中的数据,但不是全部(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]
解决方案
你可以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, to
。Arrays.stream
@WJS 是正确的,您可能需要根据您打算如何使用折扣从价格中减去价格*折扣。
推荐阅读
- java - Avro SchemaBuilder - 十进制逻辑类型的“无法覆盖属性:比例”
- docker - 如何在 localhost 中将 phpmyadmin 作为域打开?
- ruby - 组合所有组合以获得完整的集合
- keras - 理解 keras Conv2DTranspose 的输出形状
- vba - 为什么这会为每个工作簿创建两封电子邮件?
- stanford-nlp - 有没有更小的斯坦福 CoreNLP 版本?
- java - 每 30 秒查询一次 PostgreSQL 的有效方法?
- ubuntu - 当我进行 Jmeter 压力测试时,是什么阻止了我的 IP 地址?
- java - 片段和主要活动之间的nullPointerException,android / android-studio
- hazelcast - Hazelcast 便携式序列化