数组没有保存值JAVA

时间:2017-04-19 17:58:42

标签: java arrays

希望你们都过得愉快。

我的代码有问题,我试图将一些值保存到数组中,数组位置被计数器移动,但是当我尝试保存值时,它会在控制台上显示错误。

这是代码。

        if(i<6){
        i++;
        jTxtEstrategia.setText(String.valueOf(i));


            A = (Math.random() * 8);
            B = (Math.random() * 8);
            C = (Math.random() * 8);
            D = (Math.random() * 8);

            jTxtA.setText(""+(int)A);
            jTxtB.setText(""+(int)B);
            jTxtC.setText(""+(int)C);
            jTxtD.setText(""+(int)D);



            int[] j = new int[i];
            int[] k = new int[i];
            int[] l = new int[i];
            int[] m = new int[i];

            j[i]=(int) A;
            k[i]=(int)B;
            l[i]=(int)C;
            m[i]=(int)D;

            System.out.println("Estrategia "+i+"\n Sucursal A: "+j[i]+"\n Sucursal B: "+k[i]+"Sucursal C: "+l[i]+"\n Sucursal C: "+m[i]);
    }else{
        jButtCalc.setEnabled(false);
    }

目标是保存这些值以保存一些代码并在以后进行比较。

感谢您的时间,

问候(抱歉我的英语不好)。

2 个答案:

答案 0 :(得分:1)

我假设您收到ArrayOutOfBounds异常?
假设i的值为1。然后你创建一个大小为1的数组,但访问它的第二个元素,在这里:

            int[] j = new int[i];
...
            j[i]=(int) A;

您需要在循环/循环/ for / while之前使用正确数量的元素定义数组。 E.g:

int[] j = new int[N]; // where N is 6, or some other number?...
 ...
while (...) {
  if(i<6){
    i++;
 ...

但理想情况下,您应该以更常见的方式定义循环,例如:

for (int i = 0; i < 6; i++) {
...

答案 1 :(得分:0)

在您的代码中一次又一次地创建数组对象,并且您的数组大小增长,因此使用ARRAYLIST可以生成它的大小。您必须使用arrayListName.add(index,value) arrayName[index] = value的{​​{1}}来为数组列表添加值,并检索您必须使用arayListName.get(index)使用arrayName[index]

的值
    ArrayList<Integer> j= new ArrayList<Integer>();
    ArrayList<Integer> k= new ArrayList<Integer>();
    ArrayList<Integer> l= new ArrayList<Integer>();
    ArrayList<Integer> m= new ArrayList<Integer>();

if(i<6){

        i++;
        jTxtEstrategia.setText(String.valueOf(i));


            A = (Math.random() * 8);
            B = (Math.random() * 8);
            C = (Math.random() * 8);
            D = (Math.random() * 8);

            jTxtA.setText(""+(int)A);
            jTxtB.setText(""+(int)B);
            jTxtC.setText(""+(int)C);
            jTxtD.setText(""+(int)D);



            j.add(i,(int)A);
            k.add(i,(int)B);
            l.add(i,(int)C);
            m.add(i,(int)D);

            System.out.println("Estrategia "+i+"\n Sucursal A: "+j.get(i)+"\n Sucursal B: "+k.get(i)+"Sucursal C: "+l.get(i)+"\n Sucursal C: "+m.get(i));
    }else{
        jButtCalc.setEnabled(false);
    }