如何创建和填充无限数组
本文关键字:填充 无限 数组 创建 何创建 | 更新日期: 2024-11-08 10:15:45
上周早些时候,我上了一门 android/Java 课,我们的讲师喜欢时不时地向我们提出一些小挑战,就像有趣的小程序供我们思考一样。
我正在研究的主题是 c# 和 Java 环境中的 OOP 和 OOD,所以这对我的实际最终项目没有任何巨大的影响,我想强调这是一个可选的任务集。
该任务要求程序员:
创建一个程序,该程序可以容纳"无限"的整数数组(基于用户所需的整数),并在数组中找到最大值。
问题不在于max方法(简单),也不在于数组中的变量(基本),而在于数组本身。 我们不允许使用链表,它必须是一个可以接受用户输入的"无限"一维数组。
我已经玩了一段时间的数组,一开始打算制作一个圆形数组,但这仍然不能解决很多问题,而且我无法真正弄清楚如何以可以移植并在 c# 中使用的方式解决问题
关于如何实现这一目标的任何想法?
如果您不能只使用 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
的内部表示非常相似。浏览一下 source of ArrayList
了解更多,最大的区别是这个嵌入最多被阻止了 10000 ints,相反,如有必要,ArrayList
可以增长,但我认为 grows 实现超出了您的练习范围。