java - "for"函数对 ArrayList 的操作和异常 java.lang.ArrayIndexOutOfBoundsException

标签 java arrays exception arraylist netbeans

我的代码有问题。我在 ArrayList 上编写了一个简单的操作,但出现了异常。 下面是我的代码:

for (int i=0;i<Core.Config.amountInclu;i++) {
            Random r = new Random();
            x = r.nextInt(this.tabSizeX);
            y = r.nextInt(this.tabSizeY);
                            Pkt nowy = new Pkt(x,y);
                            while(newPkt.contains(nowy) || onBoundary(x,y)==false){

                                x = r.nextInt(this.tabSizeX);
                                y = r.nextInt(this.tabSizeY);
                            }
                            for(int j = 0; j<Core.Config.sizeInclu;j++){
                                for(int k = 0; k<Core.Config.sizeInclu;j++){
                                    if((x+j)<tabSizeX && (y+k)<tabSizeY){
                                        this.P[x+j][y+k].set_black();
                                        newPkt.add(nowy);
                                    }
                                }

                            }

        }

运行此代码后出现异常:

Exception in thread "AWT-EventQueue-0" java.lang.ArrayIndexOutOfBoundsException: -2147483648
at growth_1.Plansza.addInclusion(Plansza.java:661)
at growth_1.Display$18.mouseClicked(Display.java:399)
at java.awt.AWTEventMulticaster.mouseClicked(AWTEventMulticaster.java:270)
at java.awt.Component.processMouseEvent(Component.java:6542)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3324)
at java.awt.Component.processEvent(Component.java:6304)
at java.awt.Container.processEvent(Container.java:2239)
at java.awt.Component.dispatchEventImpl(Component.java:4889)
at java.awt.Container.dispatchEventImpl(Container.java:2297)
at java.awt.Component.dispatchEvent(Component.java:4711)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4904)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4544)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4476)
at java.awt.Container.dispatchEventImpl(Container.java:2283)
at java.awt.Window.dispatchEventImpl(Window.java:2746)
at java.awt.Component.dispatchEvent(Component.java:4711)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:760)
at java.awt.EventQueue.access$500(EventQueue.java:97)
at java.awt.EventQueue$3.run(EventQueue.java:709)
at java.awt.EventQueue$3.run(EventQueue.java:703)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:74)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:84)
at java.awt.EventQueue$4.run(EventQueue.java:733)
at java.awt.EventQueue$4.run(EventQueue.java:731)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:74)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:730)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:205)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)

算法非常简单,我们在 JPanel (x,y) 上画一个点并检查它是否已经被使用以及它是否在更大单元格的边界上。如果是的话,我们必须提出另一个观点。 然后我们必须将点和邻近点设置为黑色。 我以为我检查了所有条件以保护点出界。

如果您给我建议,我将非常感激。

最佳答案

我只能假设,这个问题是因为声明中的

for(int k = 0; k<Core.Config.sizeInclu;j++)...

您遇到复制粘贴错误:j++ 而不是 k++

关于java - "for"函数对 ArrayList 的操作和异常 java.lang.ArrayIndexOutOfBoundsException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53269676/

相关文章:

python - 将指定文本从索引替换为数组python中的另一个索引

java - 如何在不使用 .equals 和 false boolean 值的情况下比较数组

java - 在查询参数中获取 "%"值的 charconversion 异常?

java - 是否可以让一个方法只执行一次?

PHP MySQLi fetch "array push"覆盖数据

android - 为什么 Android MotionEvent.getHistoricalX 抛出异常

vb.net - InvalidCastException 未处理?

java - 如何使用 lambda 调用具有多个相似签名的 Kotlin 方法?

java - Spring boot POST PDF内容类型'application/pdf不支持

java - 有多少对象有资格进行垃圾回收?