繁体   English   中英

Java 2D ArrayList

[英]Java 2D ArrayList

因此,每当我运行程序并输入第二个选择时,它就会告诉我rangecheck错误,index0和size 0。

经过研究,我从中了解到arraylist为空,如何在2D arraylist中使用add函数?

| ABCDEFGHIJKLMNOPQRSTUVWX

- + ------------------------

01 | gggggggggggggggggggggggg

02 | gGGGGGGGGGGGGGGGGGGGGGGg

03 | gGggggggggggggggggggggGg

04 | gGgYYYYYYYYYYYYYYYYYYgGg

05 | gGgYggggggggggggggggYgGg

06 | gGgYggggggggggggggggYgGg

07 | gGgYggYYYYYYYYYYYYggYgGg

08 | gGgYggYggggggggggYggYgGg

09 | gGgYYYYggggggggggYYYYgGg

10 | gGggggggggggggggggggggGg

11 | gGGGGGGGGGGGGGGGGGGGGGGg

12 | gggggggggggggggggggggggg

package map;
import java.io.FileInputStream;
import java.io.InputStream;
import java.util.Scanner;
import java.util.ArrayList;

public class MapMain 
{
    public static void main(String [ ] args)
    {
        Scanner input = new Scanner(System.in);
        InputStream is = null;
          int i;
          char c;
          String T;
          ArrayList<ArrayList<String>> Contain = new ArrayList<ArrayList<String>>();
          for(int L = 0; L < 30; L++)
          {
              Contain.add(new ArrayList<String>());
          }

          try{
              do{
            int a=0;
            String Elements;
            System.out.print("To load map enter 1\nTo print loded map enter 2\nTo change specific elements press 3  ");
            a=input.nextInt();
            switch (a){
            case 1 :
                System.out.print("What is the file dest?");
                T=input.nextLine();
                is = new FileInputStream(T);
                while((i=is.read())!=-1)
                {
                   c=(char)i;
                   String O = "ankosh";
                   //Contain.add(Contain.O);
                }
                break; 
            case 2:
                while(true)
                {
                   String U = Contain.get(16).get(0);
                   //System.out.print(Contain);
                   break;
                }
                break;
            case 3:
                System.out.print("What do you want to insert?");
                Elements=input.nextLine();
                //switch (Elements){
                //case 
                }
                break;
            } while(true);
          }catch(Exception e){

        // if any I/O error occurs
        e.printStackTrace();
     }finally{
     }
    }
}

您已经创建了数组数组及其包含的数组,到目前为止还可以。 现在,在情况2中,您尝试到达第16个数组的第一个元素(基本上是String类型),该元素为null,因为您尚未向该数组添加任何内容。 在尝试使用get(index)之前,您需要做的是检查数组的长度是否大于索引。 为了添加到数组:content.get(16).add(str);。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM