【问题标题】:arraylist size exception数组列表大小异常
【发布时间】:2013-01-05 04:27:01
【问题描述】:
for(int i=0;i<charset.size();i++)
{
    for(int j=0;i<charset.size();j++)
    {
        for(int k=0;k<charset.size();k++)
        {
            String plaintext= charset.get(i)+charset.get(j)+charset.get(k);


            String hashtext=CreateHash.returnString(plaintext);

            BufferedWriter bw = new BufferedWriter(new FileWriter("/root/MD5List.txt", true)); //opens file
            bw.write(plaintext+" = "+hashtext);
            bw.newLine();
            bw.close();
        }
    }
}

arraylist 大小为 10。当我运行这个程序时,我得到一个堆栈跟踪:

线程“主”java.lang.IndexOutOfBoundsException 中的异常:索引:10,大小:10 在 java.util.ArrayList.rangeCheck(ArrayList.java:571) 在 java.util.ArrayList.get(ArrayList.java:349) 在 MD5HashTable.Hash.main(Hash.java:57) Java 结果:1

既然变量 k 明显小于 arraylist 的大小,为什么会出现这个错误?

【问题讨论】:

  • 你想做什么?同名三个arraylist??????

标签: java


【解决方案1】:

看起来你有一个错字。在j 循环中,您正在测试i

i<charset.size();

所以j 继续增加。你要测试j

j<charset.size();

【讨论】:

  • 哈哈哈哈哈哈。这就是为什么最好使用描述性变量的原因。
【解决方案2】:
Try to use 


  for(int i=0;i<charset.size();i++)
       {
        for(int j=0;j<charset.size();j++)
        {

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-16
    • 1970-01-01
    • 2019-03-09
    • 1970-01-01
    • 2023-03-18
    • 1970-01-01
    相关资源
    最近更新 更多