“线程中的异常”;“主要”;java.lang.IndexOutOfBoundsException:索引:20,大小:20

“线程中的异常”;“主要”;java.lang.IndexOutOfBoundsException:索引:20,大小:20,java,Java,我正试图将lz78代码作为学校项目编写,但我一直遇到以下错误: 线程“main”java.lang.IndexOutOfBoundsException中的异常:索引: 20号,尺码:20号 代码如下: public class LZ88 { ArrayList input = new ArrayList(); ArrayList stored = new ArrayList(); Iterator counter = input.iterator(); int c

我正试图将lz78代码作为学校项目编写,但我一直遇到以下错误:

线程“main”java.lang.IndexOutOfBoundsException中的异常:索引: 20号,尺码:20号

代码如下:

public class LZ88 {
    ArrayList input = new ArrayList();
    ArrayList stored = new ArrayList();
    Iterator counter = input.iterator();
    int count=0;
    int lz78(String x)
    {
        int length=x.length();
        for(int i=0;i<x.length();i++)
        {
            input.add(x.charAt(i));
        }
        for(int i=0;i<=input.size(); i++)
        {
            if(stored.contains(input.get(i))==true)
            {
                String str ;
                StringBuilder sb = new StringBuilder();
                sb.append(input.get(i));
                sb.append(input.get(++i));
                str=sb.toString();
                while(stored.contains(str)==true)
                {
                    sb.append(input.get(++i));
                    str=sb.toString();

                }
                stored.add(str);
                System.out.println(stored);
            }
            else
            {
                stored.add(x.charAt(i));
                System.out.println(stored);
            }
        }
        return 0;
    }
    public static void main(String[] args) {
        String x ="abaababaababbbbbbbba";
        LZ88 ob = new LZ88();
        ob.lz78(x);
    }

}
公共类LZ88{
ArrayList输入=新的ArrayList();
存储的ArrayList=新的ArrayList();
迭代器计数器=输入。迭代器();
整数计数=0;
int lz78(字符串x)
{
int length=x.length();

对于(int i=0;iReplace
for(int i=0;iReplace
for)(int i=0;i)此错误发生在哪一行?堆栈跟踪是什么?请回答并添加堆栈跟踪。与您一样,将布尔值与真值进行比较是没有意义的。无论比较与否,它的实际值都是相同的。例如
if(stored.contains)(input.get(i))==true)
在功能上与if(stored.contains(input.get(i))相同
此错误发生在哪一行?堆栈跟踪是什么?请回答并添加堆栈跟踪。将布尔值与true进行比较是没有意义的。无论它的实际值是什么,无论您是否进行比较都是相同的。例如,
if(stored.contains(input.get(i))==true)
在功能上与
if相同(stored.contains(input.get(i)))
@Mohamed Mamdoh如果我的答案符合您的问题,请单击我答案旁边的空心复选标记接受答案,该复选标记位于VotedDown箭头下方,因此复选标记变为绿色。如何接受:@Mohamed Mamdoh如果我的答案符合您的问题,请单击空心复选标记接受答案rk位于我的答案旁边,该答案位于向下箭头的正下方,因此复选标记变为绿色。如何接受: