如何使我的程序采用任意数量的数组而不是一组数?

时间:2013-12-06 23:12:43

标签: java arrays eclipse

我遇到了一个问题,我似乎无法让我的程序接受多个数组并组织它们而不必先指定一定数量的数组。这是代码,主程序只是调用它们,所以我没有把它放进去。

import SE112aClasses.GUI;
public class arraysort {    

    int[] array = new int[10];


    public void gatherint() {

        GUI gui = new GUI();


        for(int steps = 0; steps < 10; steps ++)
        {
            array[steps] = gui.getInt("Please enter an integer");

        }

    }


    public void organise() {

        boolean swap = true;
        int loops = 0;
        int y;
        while (swap) {
            swap = false;
            loops++;
            for (int i = 0; i < array.length - loops; i++) {
                if (array[i] > array[i + 1]) 
                {
                    y = array[i];
                    array[i] = array[i + 1];
                    array[i + 1] = y;
                    swap = true;
                }

            }

        }

        System.out.println(array[0]);
        System.out.println(array[1]);
        System.out.println(array[2]);
        System.out.println(array[3]);
        System.out.println(array[4]);
        System.out.println(array[5]);
        System.out.println(array[6]);
        System.out.println(array[7]);
        System.out.println(array[8]);
        System.out.println(array[9]);

    }
}

我想知道是否有一种方法可以使它获取任意数量的整数(不是设定数量)并且可以显示它们而无需提示它们将要输入的整数量。我尝试了很多东西,但它只是失败了,甚至没有打印任何东西。我是阵列的新手,所以如果有任何阅读材料我可以帮助解决这个问题,非常感谢,谢谢。

3 个答案:

答案 0 :(得分:2)

首先,您应该始终使用循环而不是手动写出println语句中的所有操作。

如果在开始阅读之前可以询问项目数,可以将数组分配为该大小,然后在数组长度上运行两个循环。

如果您想使用未知数量的项目,请使用某种ListArrayList允许您在固定时间内从数组中选择特定项。您需要一些方法来指示您何时完成选择数字。

最后,除非排序是家庭作业,否则请使用Arrays.sortCollections.sort而不是自己编写。

答案 1 :(得分:2)

您错误地使用了“数组”一词。 你只有一个数组。你想让你的程序接受一些,这是一个你不知道的数字。

这个问题有几个方面:

  1. 如果在编译时不知道数组的大小,则需要在运行时确定它。
  2. 如果用户在输入数据之前不知道数组的大小,则可以使用-1或999999之类的标记值来表示结束。 (这仅适用于家庭作业 - 在现实世界中,您使用按钮,链接或其他UI元素来停止输入数据。)
  3. 您应该使用循环来输出数组。

答案 2 :(得分:0)

使用java.util.ArrayList,它封装了数组类,应该提供你需要的功能