Arrays 从随机数组打印新的素数数组?

Arrays 从随机数组打印新的素数数组?,arrays,methods,static,primes,Arrays,Methods,Static,Primes,为什么我是3周前开始学习java的初学者,我对这段代码有一些问题 在main方法中,我有一个包含10个元素的数组。 我已经做了一些喜欢的方法 publicstaticvoidprintln(int[]数组)----打印和数组 公共静态布尔值isPrime(int-el)--------素数测试。返回true或false 公共静态int countPrimes(int[]数组)——返回数组中的素数 这是数组 int[] array = new int{7,5,7,2,11,-4,5,,10,2}

为什么我是3周前开始学习java的初学者,我对这段代码有一些问题

在main方法中,我有一个包含10个元素的数组。 我已经做了一些喜欢的方法

publicstaticvoidprintln(int[]数组)
----打印和数组

公共静态布尔值isPrime(int-el)
--------素数测试。返回true或false

公共静态int countPrimes(int[]数组)
——返回数组中的素数

这是数组

int[] array = new int{7,5,7,2,11,-4,5,,10,2}
我遇到问题的方法是:

public static int[] primesInArray(int[] array)
  {
   int n = array.length;
   int[] temp = new int[countPrimes(array)];  
   int j = 0;

   for(int i = 0; i < n; i++)
     {
       if(isPrime(array[i]))
       { 
         temp[j] = array[i];
         j= j +1;
       }
     }
     return temp;
  }
公共静态int[]primesInArray(int[]array)
{
int n=数组长度;
int[]temp=新的int[countPrimes(数组)];
int j=0;
对于(int i=0;i
它应该返回这样一个由7个数字组成的数组
{7,5,7,2,11,5,2}
但是我得到的是原始数组


我做错了什么

此测试的目的是什么

if(array[i] % array[i] == 0 || array[i] % array[i] == 1)
array[i]%array[i]
将始终为0,因此您的测试总是返回True

你不应该使用下面的方法吗

if (isPrime(array[i]))
编辑:
正如拉维所指出的,你永远不会使用你的临时数组!我认为您需要更改
array[I]=array[j]
温度[j]=数组[i]当更正的
if
测试为真时。

我看不出您在哪里使用临时数组?此条件“array[i]%array[i]==1”将始终计算为true。逻辑似乎有缺陷谢谢你们,我也修正了primetest和“temp[j]”数组。我现在工作得很好