阵列打印多次

L.N*_*L.N -5 java arrays

mhey我必须对下面的代码执行以下操作,并且不确定如何正确地将其打印到事件日志溢出 - 终止一次.它的打印次数多次.

要做:使用名为EVENT_MAX ii的常量(最终int)指定数组事件的长度.方法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++;  
         }
      }      
   }
}
Run Code Online (Sandbox Code Playgroud)

Nor*_*rsk 5

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

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