您可以在java中将数组列表添加到变量中吗

您可以在java中将数组列表添加到变量中吗,java,arrays,variables,arraylist,bluej,Java,Arrays,Variables,Arraylist,Bluej,我有以下代码: public static void main (String args[]) { Scanner input = new Scanner(System.in); System.out.println("\nLab1a\n"); final int MAX = 100; boolean primes[]; primes = new boolean[MAX]; ArrayList<Integer>PrimeFacto

我有以下代码:

public static void main (String args[])
{

    Scanner input = new Scanner(System.in);
    System.out.println("\nLab1a\n");
    final int MAX = 100;
    boolean primes[];
    primes = new boolean[MAX];


    ArrayList<Integer>PrimeFactor = new ArrayList<Integer>();
    for (int i = 1; i < MAX + 1; i++)
    {
       PrimeFactor.add(i);
    }

    System.out.println("Computing Prime Numbers");
    System.out.println();
    System.out.println("Primes Between 1 and 100");
    System.out.println(PrimeFactor);
}

public static void CompositeNumbers(ArrayList<Integer> PrimeFactor)
{
    for (int i = 0; i < PrimeFactor.size(); i++)
    {
        if (isPrime(PrimeFactor.get(i)))
        { PrimeFactor.remove(i);}
    }
}

public static boolean isPrime(int n)
{
    for (int i = 2; i < n; i++)
    {
        if (n%i == 0)
          return false;
    }
    return true;
}
publicstaticvoidmain(字符串参数[])
{
扫描仪输入=新扫描仪(System.in);
System.out.println(“\nLab1a\n”);
最终int最大值=100;
布尔素数[];
素数=新布尔值[MAX];
ArrayListPrimeActor=新的ArrayList();
对于(int i=1;i
}

所以我想做的是输出从1到100的素数。问题是每当我输出时,我只得到1到100的数字。我怎样才能解决这个问题?我看到了这个问题,因为PrimeFactor被用于两种不同的事情,我不确定。所以请帮忙。

你应该打电话

CompositeNumbers(PrimeFactor);
在打印前的主要因素中

public static void main (String args[])
{

    Scanner input = new Scanner(System.in);
    System.out.println("\nLab1a\n");
    final int MAX = 100;
    boolean primes[];
    primes = new boolean[MAX];


    ArrayList<Integer>PrimeFactor = new ArrayList<Integer>();
    for (int i = 1; i < MAX + 1; i++)
    {
       PrimeFactor.add(i);
    }

    CompositeNumbers(PrimeFactor);
    System.out.println("Computing Prime Numbers");
    System.out.println();
    System.out.println("Primes Between 1 and 100");
    System.out.println(PrimeFactor);
}

public static void CompositeNumbers(ArrayList<Integer> PrimeFactor)
{
    for (int i = 0; i < PrimeFactor.size(); i++)
    {
        if (!isPrime(PrimeFactor.get(i)))
        { 
            PrimeFactor.remove(i);
        }
    }
}

public static boolean isPrime(int n)
{
    if(n==1)
    {
        return true;
    }
    for (int i = 2; i < n+1/2; i++)
    {
        if (n%i == 0)
        {
            return false;
        }
    }
    return true;
}
publicstaticvoidmain(字符串参数[])
{
扫描仪输入=新扫描仪(System.in);
System.out.println(“\nLab1a\n”);
最终int最大值=100;
布尔素数[];
素数=新布尔值[MAX];
ArrayListPrimeActor=新的ArrayList();
对于(int i=1;i
除了德夫先生的代码之外,我想补充一点

public static void CompositeNumbers(ArrayList<Integer> PrimeFactor)
{
    for (int i = 0; i < PrimeFactor.size(); i++)
    {
        if (!isPrime(PrimeFactor.get(i)))
        { 
            PrimeFactor.remove(i);
            i--;  //<--

        }
    }
}
publicstaticvoidcompositenumbers(arraylistprimefactor)
{
对于(int i=0;i
public static void main (String args[])
{

    Scanner input = new Scanner(System.in);
    System.out.println("\nLab1a\n");
    final int MAX = 100;
    boolean primes[];
    primes = new boolean[MAX];

    ArrayList<Integer>PrimeFactor = new ArrayList<Integer>();
    for (int i = 2; i < MAX + 1 ; i++)
    {
        PrimeFactor.add(i);
    }

    CompositeNumbers(PrimeFactor);
    System.out.println("COMPUTING RIME NUMBERS");
    System.out.println();
    System.out.println("PRIMES BETWEEN 1 AND 100");
    CompositeNumbers(PrimeFactor);
    System.out.println(PrimeFactor);
}

public static void CompositeNumbers(ArrayList<Integer> PrimeFactor)
{
    for (int i = 0; i < PrimeFactor.size(); i++)
    {
        if (!isPrime(PrimeFactor.get(i)))
        { 
            PrimeFactor.remove(i);
            i--;
        }
    }
}

public static boolean isPrime(int n)
{
    if(n==1)
    {
        return true;
    }
    for (int i = 2; i < n +1/2; i++)
    {
        if (n%i == 0)
        {
            return false;
        }
    }
    return true;
}
publicstaticvoidmain(字符串参数[])
{
扫描仪输入=新扫描仪(System.in);
System.out.println(“\nLab1a\n”);
最终int最大值=100;
布尔素数[];
素数=新布尔值[MAX];
ArrayListPrimeActor=新的ArrayList();
对于(int i=2;i

}

您从未调用CompositeNumbers();您应该在System.out.println(PrimeFactor)之前添加CompositeNumbers(PrimeFactor);实际上,我还有另一个问题。我放置了CompositeNumbers(PrimeFactor);但现在我的输出是[1, 2, 4, 5, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91,92、93、94、95、96、97、98、99、100]好的,它起作用了谢谢你。谢谢你,这帮了大忙。如果你投了更高的票,那就太好了…@Blubber投了更高的票,因为我很有帮助:)