阵列打印多次

时间:2018-10-11 01:57:35

标签: java arrays

嘿,我必须对下面的代码执行以下操作,并且不确定如何正确获取它以仅打印事件日志溢出-终止一次。多次打印。

要执行的操作: 数组事件的长度由一个常量(最后一个int)指定,该常量称为 EVENT_MAX ii。方法recordEvent检查数组事件中是否还有剩余空间 存储另一个事件(提示:比较xevent和EVENT_MAX)。如果没有,则 信息: 事件日志溢出-终止 应该输出,并通过以下方法调用终止程序: System.exit(1);

class RecordEvents2 {
   public static void main (String args[]) {
      Recorder r1 = new Recorder (100,100,"Wombat Detection");
      r1.recordEvent("10:53");
      r1.recordEvent("10:59");
      r1.recordEvent("11:05");
      r1.recordEvent("12:59");
      r1.recordEvent("13:50");
      r1.recordEvent("14:06");
      r1.printEvents();
   }
}

class Recorder {
   int xPos,yPos;
   String eventType;
   String [] event = new String [5];
   final int EVENT_Max = 0;
   
   int xevent = 0; 
   
   Recorder (int xPos, int yPos, String eventType ) {
      this.xPos = xPos;
      this.yPos = yPos ;
      this.eventType = eventType;
   }
   
   void recordEvent (String eventTime ) {
      event [xevent] = eventTime;
      xevent++;
      if (xevent > EVENT_Max){
         System.out.println ("Event log overflow - terminating");
      }
   }
   void printEvents(){
      System.out.println ("Record of " + eventType +
            " events at [" + xPos + "," + yPos + "] " );
      int index=0;
      for (String current: event) {
         if (xevent > index){
            String ss=String.format("Event number %s was recorded at ",index);
            System.out.println(ss + current);
            index++;  
         }
      }      
   }
}

1 个答案:

答案 0 :(得分:5)

您正在初始化大小为5的数组,但是要插入6个元素。所以最后一次插入超出了数组的范围

您可以添加一个被调用的expandArray函数,然后将现有元素添加到该新数组中。或者,您可以使用ArrayList