gpt4 book ai didi

java - Java中将素数从一个数组复制到另一个数组的方法

转载 作者:行者123 更新时间:2023-12-02 01:34:48 25 4
gpt4 key购买 nike

我对 Java 相当陌生,我正在尝试找出一种方法来复制数组内的所有素数并将它们复制到另一个数组。

为此,我实现了一个单独的 isPrime() 方法来检查元素是否为素数,以及另一个计算该数组中素数数量的方法 countPrimes( ),这样我就可以确定新数组的大小。

这就是我陷入困境的地方:

public static int[] primesIn(int[] arr) {
int primeHolder = countPrimes(arr);
int[] copyArr = new int[primeHolder];
for (int i = 0; i < arr.length; i++) {
if (isPrime(arr[i]) == true) {
copyArr[>Needs to start from 0<] = arr[i];
}
}
return copyArr;
}

int[] arrayMan = {3,5,10,15,13};

copyArr 处,位置应为 0,每次找到质数时,后面跟着 +1。如果我给它 i 位置,如 copyArr[i] = arr[i] 所示,那么质数位于位置 5 ,它会尝试将素数保存到 copyArr 的位置 5 上,如果原始数组中只有三个素数,则该位置不存在,这将给出 copyArr 长度只有三个。

有件事告诉我一个不同的 for 循环,或者甚至可能一个额外的循环会有所帮助,但我不知道应该如何实现它。非常感谢您的帮助!

最佳答案

有第二个索引变量int primeCount ,并在找到质数时递增它。不需要第二次循环。

在内存充足的现代,事情通常不会这样做。如果您没有一些额外的硬性要求,您可以使用可调整大小的 ArrayList<Integer> ,和add()里面的东西。 (如果需要的话,最后将其转换回 int[])。在这种情况下这也更好,因为通常您的 countPrimes调用的运行速度将比 ArrayList 重新分配慢得多。

关于java - Java中将素数从一个数组复制到另一个数组的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55386644/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com