Java - 使我的未填充数组不打印出null和0?

时间:2014-02-01 23:47:43

标签: java arrays input parallel-processing output

所以我必须使用3个并行数组。 (没有阵列名单)

    String fileName = "computers.txt"; //file that lists computers       
    String[] computerBrand = new String[15]; //computer brand array      
    double[] computerSpeed = new double[15]; //computers processor speed array       
    double[] computerPrice = new double[15]; //computers price array

我正在为用户提供将计算机添加到阵列,编辑计算机以及从阵列中删除计算机的功能。然后在程序结束时,当他们决定退出时,它将数组保存回computers.txt并关闭。

我的问题:

1。)我的数组设置为15,但在computers.txt中只有10台计算机(为更多的计算机添加空间)所以当我将数组打印到控制台时,它打印出来计算机品牌,速度和价格,但它也打印出最后5个品牌的null,null,null,以及最后5个品牌的零和&价格。我该如何解决这个问题?

2。)使用Parallel Arrays(没有arraylists)如何确保如果用户将6或7台计算机添加到列表中,那么阵列可以随之扩展吗?有关指令的一些信息:"由于数组中的项目数可能会在程序执行过程中发生变化,因此您需要保留一个额外的整数变量以及数组中的项目数。"

感谢您的帮助。

3 个答案:

答案 0 :(得分:1)

1)循环并自己打印。打印从索引0到索引N-1的所有元素,
其中Ni的最后/当前值。这里i是......在此处查看我之前的答案:
Java - Add user input to 3 arrays? (Parallel Arrays)

2)在尝试添加新元素之前,请先检查i == computerBrand.length是否 是真的。如果是这样,你需要扩展你的3个数组。所以重新创建3个阵列,但增加
他们的大小说10。

String[] computerBrandExtended = new String[computerBrand.length + 10];
loop and copy all values from computerBrand to computerBrandExtended;
computerBrand = computerBrandExtended;

对所有3个阵列执行此操作。现在你又有了一些空间。

答案 1 :(得分:0)

创建适合您问题的ArrayList

这是arrayList

的javadoc
http://docs.oracle.com/javase/7/docs/api/java/util/ArrayList.html

他们致力于动态内存分配,很容易使用它们,比如添加删除

答案 2 :(得分:0)

创建如下内容:

class Computer {
    String brabd;
    double price;
    double speed;
}

然后使用计算机集合:

List<Computer> computers = new ArrayList<>();