java - 2D ArrayList 索引越界

标签 java android multidimensional-array indexoutofboundsexception

我正在为我的应用程序实现二维数组。
但不幸的是我遇到了这个错误。

FATAL EXCEPTION: main
   Process: com.application.recast, PID: 18534
   java.lang.RuntimeException: Unable to start activity ComponentInfo{com.application.recast/com.application.recast.SplashScreen}: java.lang.IndexOutOfBoundsException: Index: 1, Size: 1
       at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2646)
       at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2707)
       at android.app.ActivityThread.-wrap12(ActivityThread.java)
       at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1460)
       at android.os.Handler.dispatchMessage(Handler.java:102)
       at android.os.Looper.loop(Looper.java:154)
       at android.app.ActivityThread.main(ActivityThread.java:6077)
       at java.lang.reflect.Method.invoke(Native Method)
       at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:865)
       at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:755)
    Caused by: java.lang.IndexOutOfBoundsException: Index: 1, Size: 1
       at java.util.ArrayList.get(ArrayList.java:411)
       at com.application.recast.SplashScreen.onCreate(SplashScreen.java:60)
       at android.app.Activity.performCreate(Activity.java:6664)
       at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1118)
       at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2599)
       at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2707) 
       at android.app.ActivityThread.-wrap12(ActivityThread.java) 
       at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1460) 
       at android.os.Handler.dispatchMessage(Handler.java:102) 
       at android.os.Looper.loop(Looper.java:154) 
       at android.app.ActivityThread.main(ActivityThread.java:6077) 
       at java.lang.reflect.Method.invoke(Native Method) 
       at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:865) 
       at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:755)

我正在做的是,我想将特定项目存储到二维数组的特定索引中。
2D 数组列表非常新。
这是我的代码。

ArrayList<String> mStrings = new ArrayList<>();
ArrayList<ArrayList<String>> list = new ArrayList<>();

mStrings.add("HI");
mStrings.add("HI2");
mStrings.add("HI3");
mStrings.add("HI4");
list.add(0,mStrings);

for(int x=0;x<list.size();x++){
    for(int y=0;y<mStrings.size();y++){
        Log.d("VALUE",String.valueOf(list.get(y)));
    }
}

最佳答案

问题 java.lang.IndexOutOfBoundsException: Index: 1, Size: 1 at

list只有1元素均值list.get(0)但是for(int y=0;y<mStrings.size();y++){将被执行 4 次,因此这里错误 list.get(y)

list仅包含单个元素,即 mStrings

以及 list 中的进一步单个元素此逻辑有效,但适用于 list 中的多个元素您需要从 list 获取元素然后遍历它

for(int x=0;x<list.size();x++){
         ArrayList<String> sublist = list.get(x);
            for(int y=0;y<sublist.size();y++){
                //Log.d("VALUE",String.valueOf(sublist.get(y)));
                Log.d("VALUE at index "+y,sublist.get(y));
            }
        }

注意:现在String.valueOf(是不必要的,因为您的数据是字符串类型

关于java - 2D ArrayList 索引越界,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42688699/

相关文章:

java - 弱要求 : how to make sure an object is initialized

java - Lwjgl如何简化高度图以获得更高的fps?

java - 如何将 ArrayList 从 Activity 发送到 NavigationDrawerFragment?

php - 搜索 php assoc array (hash map) 作为 mysql

JavaFX - TableView 中的不可见数据

java - 识别 session 超时

java - 在android中使用公钥加密

android - 停止 Android 软键盘完成单词

PHP多个数组存入MySQL数据库

matlab - 如果没有 for 循环,我如何表达如此大量的计算?