Como comparar uma string percorrendo um ArrayList no Java?

Então, o código funciona assim: há 20 times de futebol. Na main, eu peço para digitar um time String time = alg.next(); e em outra classe eu tenho um método com um arrayList que sorteia outro time.
Eu queria saber se há como criar uma condição: o time que eu inserir na main deve ser um dos que estão inclusos no ArrayList do método que eu fiz, e após selecioná-lo, retirá-lo do array, ou seja, não sorteá-lo.
Método:
public String SorteioFut() {
futebol.add("Athletico PR");
futebol.add("Atlético MG");
futebol.add("Avaí");
futebol.add("Bahia");
futebol.add("Botafogo");
futebol.add("Ceará");
futebol.add("Chapecoense");
futebol.add("Corinthians");
futebol.add("CSA");
futebol.add("Cruzeiro");
futebol.add("Flamengo");
futebol.add("Fluminense");
futebol.add("Fortaleza");
futebol.add("Goiás");
futebol.add("Grêmio");
futebol.add("Internacional");
futebol.add("Palmeiras");
futebol.add("Santos");
futebol.add("São Paulo");
futebol.add("Vasco");
Collections.shuffle(futebol);
int n=random.nextInt(20);
return futebol.get(n);
}

Supondo que futebol seja uma List (java.util). Esse objeto possui um método chamado contains. E também há o método remove.
A única questão é que você será obrigado a digitar exatamente como está na lista.

Tentei esse código, mas deu erro.
public void Condicao(String x) {
for (int i = 0; i < getBasquete().size(); i++) {
if (!getBasquete().get(i).equals(x)) {
System.out.println("Time inválido!");
}}}

Entendo. Mas como compará-lo?

if(futebol.contains("Time")) {
    futebol.remove("Time");
}

Não teria uma forma de percorrer o array e compará-lo?

O método que você mostrou faz isso. Onde acusa erro? O que não funciona?

Exception in thread "main" java.lang.IndexOutOfBoundsException: Index: 0, Size: 0
at java.util.ArrayList.rangeCheck(Unknown Source)
at java.util.ArrayList.get(Unknown Source)

Sabe que essa exceção significa que você está tentando iterar (andar) sobre uma lista vazia, né?
E, faz sentido, afinal, você está tentando iterar sobre uma lista que vem do método getBasquete e não getFutebol…

Mas eu fiz para os dois.
Método para basquete:
public void Condicao(String x) {
for (int i = 0; i < getBasquete().size(); i++) {
if (!getBasquete().get(i).equals(x)) {
System.out.println("Time inválido!"); }}}
Main:
String timeB = alg.next(); basquete.Condicao(timeB);

Método para Futebol:
public void Condicao(String x) {
for (int i = 0; i < getFutebol().size(); i++) {
if (!getFutebol().get(i).equals(x)) {
System.out.println("Time inválido!"); }}}
Main:
String time = alg.next(); futebol.Condicao(time);

Então, o que ocorre é que a sequência não está correta. Você precisa ter a lista preenchida para não ter aquela exceção.

Você pode me explicar como eu faço para corrigir? Vejo que o problema está no método de retorno (get).
Esse é o que está dando errado:
public ArrayList<String> getFutebol() {
return futebol; }

Ah cara, consegui! Eu só precisava fazer um add() no método get(). Que mancada! kkk