Olá! Tenho uma dúvida na seguinte questão:
Crie uma classe TesteArrayListString que possui um método main.
Dentro do main crie um ArrayList de String (lista1).
Adicione 10 Strings informadas pelo usuário.
Percorra a lista verificando se o usuário digitou alguma String com menos de 3 caracteres. Em caso positivo, adicione essa String em outra lista que você vai criar (lista2).
Utilizando o método remove, remova todos os elementos dessa segunda lista (lista2) da lista principal (lista1).
No final imprima a quantidade de Strings da lista.
Minha tentativa de código ficou assim:
package aula09;
import java.util.ArrayList;
import java.util.Scanner;
/**
*
* @author Matias
*/
public class TesteArrayListString
{
public static void main(String[] args)
{
ArrayList<String> lista1 = new ArrayList<>();
ArrayList<String> lista2 = new ArrayList<>();
Scanner sc = new Scanner(System.in);
String nome;
//Adiciona Strings a lista1
for(int i = 0; i < 10; i++)
{
System.out.print("Digite qualquer coisa: ");
nome = sc.next();
lista1.add(nome);
}
/*Essa parte deveria adicionar Strings com menos de 3 caracteres da lista1 a lista2.
*E logo após remover essa String da lista1.
*Porém não estou obtendo o resultado esperado na saida!
*/
for (int i = 0; i < lista1.size(); i++)
{
if(lista1.get(i).length() < 3)
{
lista2.add(lista1.get(i));
lista1.remove(i);
}
}
//Imprime o tamanho das listas.
System.out.println("Lista 1: " + lista1.size());
System.out.println("Lista 2: " + lista2.size());
}
}
Porém quando executo o código e tento atender o quesito de adicionar Strings com menos de 3 caracteres a lista2 e remove-los da lista1, não obtenho o resultado esperado. Se alguém puder me ajudar fico grato! Agradeço desde já! 
Dúvida sanada, muito obrigado mais uma vez!