尝试在数组中打印附加对象时,如何解决ArrayIndexOutOfBoundsException错误?

时间:2018-11-02 22:41:05

标签: java indexoutofboundsexception

运行我的代码时,出现如下错误:

 Exception in thread "main" tony
 java.lang.ArrayIndexOutOfBoundsException: 1
 at tt.main(tt.java:17)

代码如下:

import java.util.ArrayList;
import java.util.Arrays;

public class tt {


   static int oldAge[];
   static Integer ages[];
   static ArrayList<Integer> ageObject;

public static void main(String args[]){

    System.out.println("tony");
    setAges();


        System.out.println(ages[1].intValue());
    System.out.println(oldAge[2]);



   }

   public static void setAges(){


    oldAge = new int[3];

     oldAge[0] = 50;
     oldAge[1] = 60;
     oldAge[2] = 70;

     ages = new Integer[1];
     ages[0] = 50;

     ageObject = new ArrayList<Integer>(Arrays.asList(ages));

 for(int x =0; x < oldAge.length; x++){

  if(oldAge[x] == 60){
    ageObject.add(oldAge[x]);
 }
  else if(oldAge[x] == 56){
    ageObject.add((Integer)(oldAge[x]));
 }
  else if(oldAge[x] == 70){
    ageObject.add((Integer)(oldAge[x]));
 }



       }

     }

  }

我希望代码打印出应该是60岁的年龄的新增加的值。

1 个答案:

答案 0 :(得分:2)

此行

System.out.println(ages[1].intValue());

不正确。 ages就是一个元素。应该是

System.out.println(ages[0].intValue());

我没有其他改变

tony
50
70

要获取60,您需要打印oldAge的第二个元素。喜欢,

System.out.println(oldAge[1]);