Java 从double数组中删除元素
如何从双精度数组中删除所有出现的元素。考虑Java 从double数组中删除元素,java,Java,如何从双精度数组中删除所有出现的元素。考虑 double[] arr = { 0.0,4.8,5.1,0.0,9.8} 我希望输出为{4.8,5.1,9.8}您必须创建一个新数组,以便 List<Double> removals = Arrays.asList(arr); while(removals.remove(0.00)) {} double [] newArr = removals.toArray(new String[removals.size()]); arr = ne
double[] arr = { 0.0,4.8,5.1,0.0,9.8}
我希望输出为{4.8,5.1,9.8}您必须创建一个新数组,以便
List<Double> removals = Arrays.asList(arr);
while(removals.remove(0.00)) {}
double [] newArr = removals.toArray(new String[removals.size()]);
arr = newArr;
有了Java8流的强大功能,您就可以轻松完成
double[] arr = {0.0, 4.8, 5.1, 0.0, 9.8};
double[] result = Arrays.stream(arr)
.filter(e -> e != 0.0)
.toArray();
System.out.println(Arrays.toString(result));
遍历数组元素,若它不等于零,则记住它,并递增计数器。循环之后,你会得到类似的结果 {4.8,5.1,9.8,0.0,9.8} 电流=3 然后使用arr=Arrays.copyOfarr,current;删除未使用的值 并在新数组{4.8,5.1,9.8}中得到结果
double[] arr = {0.0, 4.8, 5.1, 0.0, 9.8};
int current = 0;
for (int i = 0; i < arr.length; i++) {
if (arr[i] != 0) {
arr[current++] = arr[i];
}
}
arr = Arrays.copyOf(arr, current);
你试过什么吗?这是一项简单的任务。
double[] arr = {0.0, 4.8, 5.1, 0.0, 9.8};
int current = 0;
for (int i = 0; i < arr.length; i++) {
if (arr[i] != 0) {
arr[current++] = arr[i];
}
}
arr = Arrays.copyOf(arr, current);