所以我必须使用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台计算机添加到列表中,那么阵列可以随之扩展吗?有关指令的一些信息:"由于数组中的项目数可能会在程序执行过程中发生变化,因此您需要保留一个额外的整数变量以及数组中的项目数。"
感谢您的帮助。
答案 0 :(得分:1)
1)循环并自己打印。打印从索引0到索引N-1
的所有元素,
其中N
是i
的最后/当前值。这里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
的javadochttp://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<>();