Java 方法,该方法查看整数数组并忽略数字的倍数
我正在制作一个忽略倍数的方法。输入为..Java 方法,该方法查看整数数组并忽略数字的倍数,java,arrays,methods,int,Java,Arrays,Methods,Int,我正在制作一个忽略倍数的方法。输入为.. int[]消除=新的int[]{1,54,20,17,60} 这是密码 public static int[] EliminateMultiples(int[] List, int Num) { int[] New = new int[List.length]; int NewListIndex = 0; for (int i=0; i<List.length; i++) { if ((List[i] % Num
int[]消除=新的int[]{1,54,20,17,60}代码>
这是密码
public static int[] EliminateMultiples(int[] List, int Num) {
int[] New = new int[List.length];
int NewListIndex = 0;
for (int i=0; i<List.length; i++) {
if ((List[i] % Num !=0 )) {
New[NewListIndex] = List[i];
}
NewListIndex++;
System.out.println(New[i]);
}
return New;
}
public static int[]消除多个(int[]列表,int Num){
int[]New=New int[List.length];
int NewListIndex=0;
对于(int i=0;i使用Java 8流的简单解决方案:
public static int[] eliminateMultiples(int[] list, int num) {
return Arrays.stream(list).filter(i -> i % num != 0).toArray();
}
如果您还想打印每个元素,可以peek
到流中并打印它们:
public static int[] eliminateMultiples(int[] list, int num) {
return Arrays.stream(list).filter(i -> i % num != 0).peek(System.out::println).toArray();
}
如果确实需要使用阵列,则至少需要2个循环:
计算元素的数量:
int count = 0;
for (int element : list) {
if (element % num != 0)
count++;
}
使用元素数(从1开始)创建数组并填充它
int[] result = new int[count];
int i = 0;
for (int element : list) {
if (element % num != 0) {
result[i++] = element;
}
}
return result;
正如您所看到的,这需要编写更多的内容。这里有一个解决方案,它将使您的数组具有正确的大小。它不同于,因为NewListIndex被放入if中,最后数组被“修剪”成正确的长度
public static int[] EliminateMultiples(int[] List, int Num) {
int[] New = new int[List.length];
int NewListIndex = 0;
for (int i=0; i<List.length; i++) {
if ((List[i] % Num !=0 )) {
New[NewListIndex] = List[i];
NewListIndex++;
}
}
int [] ret=Arrays.copyOfRange(New, 0, NewListIndex);
return ret;
}
public static int[]消除多个(int[]列表,int Num){
int[]New=New int[List.length];
int NewListIndex=0;
对于(int i=0;我可以使用ArrayList
吗?或者您必须使用int[]
?此外,可能不需要这种双静态方法,但它不会给您带来任何问题,因为您应该了解静态的含义。