Java—关于如何删除满足特定条件的元素的建议?
我试图从数组中删除小于0或大于250的某些元素。我已经读过arrayUtils.removeElement,但它似乎不起作用(arrayUtils无法解决)。对我能用什么有什么建议吗 以下是导入的库:Java—关于如何删除满足特定条件的元素的建议?,java,Java,我试图从数组中删除小于0或大于250的某些元素。我已经读过arrayUtils.removeElement,但它似乎不起作用(arrayUtils无法解决)。对我能用什么有什么建议吗 以下是导入的库: import java.io.*; import java.util.*; import java.lang.*; public static void dataCleaning() { readFile(); int[] heights = readFile(); int[] my
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]);
}
}
}
import java.io.*;
导入java.util.*;
导入java.lang.*;
公共静态void数据清理(){
readFile();
int[]heights=readFile();
int[]myArray[];
对于(int i=0;i250 | |高度[i]<0){
ArrayUtils.移除(高度,高度[i]);
}
}
}
您可以创建另一个数组来存储新元素。例如:
public static void dataCleaning(){
int[] heights = readFile();
int[] myArray;
int[] newArray;
int newArrayIndex=0;
for (int i = 0; i < heights.length; i++) {
if (heights[i] > 250 || heights[i] < 0) {
newArray[newArrayIndex]=heights[i];
newArrayIndex++;
}
}
}
publicstaticvoiddatacleaning(){
int[]heights=readFile();
int[]myArray;
int[]新数组;
int newArrayIndex=0;
对于(int i=0;i250 | |高度[i]<0){
newArray[newArrayIndex]=高度[i];
newArrayIndex++;
}
}
}
编辑:
或者,您也可以编辑高度数组,只需使用它代替newArrayIndex中的newArray即可。一次,您可能只需调用
readFile
。不要读两遍就把第一遍扔掉。其次,您可以使用IntStream
来筛选要保留的值,并删除要忽略的值(在构建新数组之前,我不会删除循环中的元素,数组具有固定的大小,因此每个操作都会创建一个新数组)
相反,我会这样做
public static void dataCleaning() {
int[] heights = readFile();
int[] myArray = IntStream.of(heights).filter(x -> x >= 0 && x <= 250).toArray();
}
publicstaticvoiddatacleaning(){
int[]heights=readFile();
int[]myArray=IntStream.of(heights).filter(x->x>=0&&x这里ArrayUtils
是apache(commons lang)提供的一个库,您可以使用java.util.array
和java.util.stream.
int[] newArray = Arrays.stream(heights).filter(x -> x >= 0 && x <= 250).toArray();
int[]newArray=Arrays.stream(heights).filter(x->x>=0&&x ArrayUtils)是apache(commons lang)的一个库。您需要下载它并将其添加到您的项目/类路径中。您需要一个newArrayIndex++
位置;您还应该告诉OP如何适当调整newArray
的大小。