如何创建和填充无限数组

本文关键字:填充 无限 数组 创建 何创建 | 更新日期: 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 实现超出了您的练习范围。