0
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,为什么会出现此错误?

4

2 回答 2

9

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

i<charset.size();

所以j继续递增。你想测试j

j<charset.size();
于 2013-01-05T04:31:04.090 回答
0
Try to use 


  for(int i=0;i<charset.size();i++)
       {
        for(int j=0;j<charset.size();j++)
        {
于 2013-01-05T04:29:12.900 回答