上周早些时候,我参加了一个Android / Java课程,我们的讲师喜欢偶尔向我们提出一些挑战,就像我们想到的有趣的小程序一样。
我正在研究的主题是c#和Java环境中的OOP和OOD,所以这对我的实际最终项目没有任何巨大的影响,我想强调这是一个可选的任务集
任务要求程序员:
创建一个可以容纳“无限”整数数组的程序(根据用户需要的数量)并找到数组中的最大值。
问题不是max方法(简单),也不是数组中的变量(基本),而是数组本身。我们不允许使用链接列表,它必须是一个“无限”的一维数组,可以接受用户输入。
我一直在玩数组一段时间了,最初会打造一个圆形阵列,但仍然无法解决很多问题,我无法解决如何解决问题的方式是移植并在c#
中使用关于如何实现这一目标的任何想法?
答案 0 :(得分:0)
如果您不能仅使用LinkedList
,则可以使用java.util.List
的任何其他实现。
如果你根本不能使用java.util.List
,你可以根据需要使用一个具有足够值的数组,并使用指向最后一个值的指针。
像这样的东西
public class MyArray {
private int[] myArray = new int[10000];
private int index = -1;
public void add(int obj) {
index++;
myArray[index] = obj;
}
public Integer removeLast() {
if (index >= 0) {
return myArray[index--];
}
return null;
}
public Integer get(int i) {
if (i >= 0 && i < index) {
return myArray[i];
}
return null;
}
}
请注意。这与ArrayList
的内部表示非常相似。浏览ArrayList
的来源以了解更多信息,最大的区别是这个实现被阻止到最多10000个int,而ArrayList
可以在必要时增长,但我认为增长的实现超出了你的练习范围。