Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/368.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
错误:“;螺纹-1”;java.lang.IndexOutOfBoundsException_Java_Multithreading_Exception - Fatal编程技术网

错误:“;螺纹-1”;java.lang.IndexOutOfBoundsException

错误:“;螺纹-1”;java.lang.IndexOutOfBoundsException,java,multithreading,exception,Java,Multithreading,Exception,我有一些代码用于一个运行在服务器内部的琐事/解读机器人,在服务器中,用户试图在时间结束之前猜测问题的答案。代码编译得很好,但是在运行线程大约30-45分钟后,我收到一个错误,琐事停止工作。以下是我得到的错误: Exception in thread "Thread-1" java.lang.IndexOutOfBoundsException: Index: 973, Size 965 at java.util.ArrayList.rangeCheck(Unknown Source)

我有一些代码用于一个运行在服务器内部的琐事/解读机器人,在服务器中,用户试图在时间结束之前猜测问题的答案。代码编译得很好,但是在运行线程大约30-45分钟后,我收到一个错误,琐事停止工作。以下是我得到的错误:

Exception in thread "Thread-1" java.lang.IndexOutOfBoundsException: 
  Index: 973, Size 965
    at java.util.ArrayList.rangeCheck(Unknown Source)
    at java.util.ArrayList.get(Unknown Source)
    at org.emulinker.kaillera.model.impl.Trivia.run(Trivia.java:251)
    at java.lang.Thread.run(Unknown Source)
以下是
org.emulinker.kaillera.model.impl.Trivia
的代码,从第249行开始:

        else{
            temp = generator.nextInt(questions.size() - 1);
            questions_count = questions_num.get(temp);
            questions_num.remove(temp);
        }

关于如何解决这个问题,你有什么想法吗?

我不确定Java还能提供什么其他信息让你更容易解决这个问题

它告诉您确切的行
Trivia.java:251
,集合大小
965
,以及您试图使用的索引
973
。这就足够了吗

通常情况下,我很少有机会尝试找出这几百行代码中的哪一行是第251行,但是,我现在很无聊,所以我会尝试一下(而且,在任何情况下,您已经用相关的行替换了大量的代码转储)。错误的路线似乎是:

 else{
     temp = generator.nextInt(questions.size() - 1);
     questions_count = questions_num.get(temp);       // << THIS ONE
     questions_num.remove(temp);
 }
else{
temp=生成器.nextInt(questions.size()-1);

questions\u count=questions\u num.get(temp);//我不确定Java还能提供什么其他信息让这变得更容易

它告诉您确切的行
Trivia.java:251
,集合大小
965
,以及您试图使用的索引
973
。这就足够了吗

通常情况下,我很少有机会尝试找出这几百行中的哪一行是第251行,但是,我现在很无聊,所以我会尝试一下(而且,在任何情况下,您已经用相关行替换了大量代码转储)。错误行似乎是:

 else{
     temp = generator.nextInt(questions.size() - 1);
     questions_count = questions_num.get(temp);       // << THIS ONE
     questions_num.remove(temp);
 }
else{
temp=生成器.nextInt(questions.size()-1);
问题数量=问题数量获取(临时);//
线程“thread-1”java.lang.IndexOutOfBoundsException中的异常:
索引:973,尺寸965

此异常是不言自明的。
questions_num
的大小为965,您试图在边界之外访问它,即973

正如所说

IndexOutOfBoundsException
被抛出,以指示某种类型的索引(例如到数组的索引、到 字符串或向量)超出范围

线程“thread-1”java.lang.IndexOutOfBoundsException中的异常:
索引:973,尺寸965

此异常是不言自明的。
questions_num
的大小为965,您试图在边界之外访问它,即973

正如所说

IndexOutOfBoundsException
被抛出,以指示某种类型的索引(例如到数组的索引、到 字符串或向量)超出范围


格式化代码并指定行号。哪一行引发异常?
temp=generator.nextInt(questions.size()-1);
引发异常格式化代码并指定行号。哪一行引发异常?
temp=generator.nextInt(questions.size()-1);
抛出ExceptionTanks以获取帮助,很抱歉出现了代码段。因此,要解决此问题,我需要同步问题和问题数量?我对编程相当陌生,我只是尝试“修复”我所相信的是我每天使用的一个程序中的小错误,这样我所在的社区就可以享受一个正常工作的服务器。换句话说,你能不能帮我把它分解一下,像我是一个幼儿园老师一样给我解释一下?:@user3085046,不要在这里使用那些“高难度”的德语单词,而“初学者”也可以:-)但是,幽默除外,是的。a假设它们是同步的,那么将索引
temp
questions\u num
中删除,而不是
questions
中删除是个坏主意。如果它们不是同步的,您可能需要使用
temp=generator.nextInt(questions\u num.size()-1)
相反,这一切都归结于意图,不幸的是,我不知道,因为我真的不想阅读450多行代码:-)这不起作用,但非常感谢你的帮助,我会努力找出答案out@user3085046,那么,至少您知道具体的问题,即您正在使用不同大小的集合来生成in索引到一个较小的集合中。从那里开始,至少应该更容易找到根本原因。祝你好运。感谢你的帮助,对代码片段感到抱歉。所以要解决这个问题,我需要同步问题和问题数量?我对编程相当陌生,我只是尝试“修复”我所相信的是我每天使用的一个程序中的小错误,这样我所在的社区就可以享受一个正常工作的服务器。换句话说,你能不能帮我把它分解一下,像我是一个幼儿园老师一样给我解释一下?:@user3085046,不要在这里使用那些“高难度”的德语单词,而“初学者”也可以:-)但是,幽默除外,是的。a假设它们是同步的,那么将索引
temp
questions\u num
中删除,而不是
questions
中删除是个坏主意。如果它们不是同步的,您可能需要使用
temp=generator.nextInt(questions\u num.size()-1)
相反,这一切都归结于意图,不幸的是,我不知道,因为我真的不想阅读450多行代码:-)这不起作用,但非常感谢你的帮助,我会努力找出答案out@user3085046,那么,至少您知道具体的问题,即您正在使用不同大小的集合来生成in将dex放入一个较小的集合中。从那里,至少应该更容易找到根本原因。祝你好运。