如何创建和填充无限数组

时间:2015-03-09 16:50:31

标签: java c# arrays

上周早些时候,我参加了一个Android / Java课程,我们的讲师喜欢偶尔向我们提出一些挑战,就像我们想到的有趣的小程序一样。

我正在研究的主题是c#和Java环境中的OOP和OOD,所以这对我的实际最终项目没有任何巨大的影响,我想强调这是一个可选的任务集

任务要求程序员:

  

创建一个可以容纳“无限”整数数组的程序(根据用户需要的数量)并找到数组中的最大值。

问题不是max方法(简单),也不是数组中的变量(基本),而是数组本身。我们不允许使用链接列表,它必须是一个“无限”的一维数组,可以接受用户输入。

我一直在玩数组一段时间了,最​​初会打造一个圆形阵列,但仍然无法解决很多问题,我无法解决如何解决问题的方式是移植并在c#

中使用

关于如何实现这一目标的任何想法?

1 个答案:

答案 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可以在必要时增长,但我认为增长的实现超出了你的练习范围。