为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

红颜莎娜 2022-09-07 21:47:49
我对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};在位置应该是,然后是每次它找到一个素数。如果我给它位置,如 在 中,然后说素数在位置,它会尝试将素数保存到 的位置上,如果原始数组中只有三个素数,则不存在,这将给出只有三个长度。copyArr0+1icopyArr[i] = arr[i]55copyArrcopyArr有些东西告诉我一个不同的for循环,或者甚至一个额外的for循环会有所帮助,但我看不出我应该如何实现它。非常感谢您的帮助!
查看完整描述

2 回答

?
烙印99

TA贡献1829条经验 获得超13个赞

有第二个索引变量,每当你找到一个素数时,它就会递增。无需第二个循环。int primeCount

在记忆力充沛的现代,事情通常不会像这样做。如果你没有一些额外的硬性要求,你可以使用一个可调整大小的ArrayList<Integer>,以及里面的东西。(如果需要,请在末尾将其转换回int[])。在这种情况下,这也更好,因为通常您的调用将比 ArrayList 重新分配慢得多。add()countPrimes


查看完整回答
反对 回复 2022-09-07
?
尚方宝剑之说

TA贡献1788条经验 获得超4个赞

仔细阅读你的话:

在位置应该是,然后是每次它找到一个素数。copyArr0+1

这意味着新数组中的索引不依赖于其在旧数组中的位置。
创建计数器。每次将质数放入新数组中时,请将其递增 1。因此,您始终可以知道在哪里放置新数字。


查看完整回答
反对 回复 2022-09-07
  • 2 回答
  • 0 关注
  • 124 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信