При компиляции выдается сообщение:
Exception in thread "main" java.lang.IndexOutOfBoundsException: Index: 2, Size: 2
at java.util.ArrayList.rangeCheck(ArrayList.java:657)
at java.util.ArrayList.get(ArrayList.java:433)
at com.javarush.task.task07.task0727.Solution.main(Solution.java:34)
Что не так?
package com.javarush.task.task07.task0727;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.Iterator;
public class Solution {
public static void main(String[] args) throws IOException {
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
ArrayList<String> strings = new ArrayList<String>();
while (true) {
String string = reader.readLine();
if (string == null || string.isEmpty()) break;
strings.add(string); }
ArrayList<String> resultStrings = new ArrayList<String>();
for (int i = 0; i < strings.size(); i++) {
if (strings.get(i).length() % 2 == 0) {
resultStrings.add(strings.get(i));
resultStrings.add(strings.get(i));
} else if (strings.get(i).length() % 2 != 0) {
resultStrings.add(strings.get(i));
resultStrings.add(strings.get(i));
resultStrings.add(strings.get(i)); }
}
for(String e : resultStrings){
System.out.println(e); }
System.out.println();
ArrayList<String> list = new ArrayList<String>();
while (!resultStrings.isEmpty()) {
if (resultStrings.get(0).equals(resultStrings.get(1)) && resultStrings.get(0).equals(resultStrings.get(2))) {
String s1 = resultStrings.get(0) + resultStrings.get(1) + resultStrings.get(2);
list.add(s1);
Iterator<String> iterator = resultStrings.iterator();
int i = 1;
while (i <= 3) {
iterator.next();
iterator.remove();
i++; }
}
else
if ((resultStrings.get(0).equals(resultStrings.get(1))) && (resultStrings.get(2)) != null
&& !(resultStrings.get(0).equals(resultStrings.get(2))))
{
String s2 = resultStrings.get(0) + resultStrings.get(1);
list.add(s2);
Iterator<String> iterator = resultStrings.iterator();
int i = 1;
while (i <= 2) {
iterator.next();
iterator.remove();
i++; }
}
}
for(String e : list){
System.out.println(e);
}
}
}