Java - 有关如何删除满足特定条件的元素的建议?

Tho*_*mas 2 java

我正在尝试从数组中删除小于0或大于250的某些元素.我读过有关arrayUtils.removeElement的内容,但它似乎不起作用(无法解析ArrayUtils).对我可以使用的任何建议?

这些是导入的库:

import java.io.*;
import java.util.*;
import java.lang.*;

public static void dataCleaning() {
  readFile();
  int[] heights = readFile();
  int[] myArray[];
  for (int i = 0; i < heights.length; i++) {
    if (heights[i] > 250 || heights[i] < 0) {
      ArrayUtils.removeElement(heights, heights[i]);
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

Ell*_*sch 6

一,你应该只打readFile一次电话.不要读它两次扔掉第一个.其次,您可以使用a IntStream来filter保留要保留的值并删除要忽略的值(在构建新数组之前 - 我不会删除循环中的元素,数组具有固定大小 - 因此每个操作都会创建一个新的阵列).

相反,我会这样做,

public static void dataCleaning() {
    int[] heights = readFile();
    int[] myArray = IntStream.of(heights).filter(x -> x >= 0 && x <= 250).toArray();
}
Run Code Online (Sandbox Code Playgroud)