На первый взгляд похоже, что это проблема
for(int i = 0; i < arrayList.size(); i++)
{
Polynomial polynomial = new Polynomial(arrayList.get(i), arrayList.get(i+1));
polynomialarraylist.add(polynomial);
System.out.println("coef" + arrayList.get(i));
System.out.println("degree" + arrayList.get(i+1));
i++;
}
Вы делаете здесь i ++ дважды.
Кроме того, вы разместили слишком много кода. Никто не хочет так много читать. Тебе просто повезло, что, предполагая, что это проблема, я случайно взглянул на это.
Кроме того, это приведет к появлению массива indexoutboundboundror, так как вы делаете .get (i + 1)