Remover um nome em uma lista por caracteres

Gente, como posso remover um nome de uma pessoa começado por aquela letra específica? Por exemplo: Tenho Maria, João, Mariana e quero que esses dois elementos que começam com a letra M, sejam removidos da lista! Já tentei de tudo, principalmente o método Remove, porém não funcionou.

Daria para fazer assim:

import java.util.ArrayList;
import java.util.List;

public class Main {
  public static void main(String... args) {
    List<String> nomes = new ArrayList<>();

    nomes.add("Maria");
    nomes.add("João");
    nomes.add("Mariana");

    nomes.removeIf(nome -> nome.startsWith("M"));

    System.out.println(nomes);
  }
}

Mas se vc não puder ou não quiser modificar a lista original, poderia fazer assim:

import java.util.List;

public class Main {
  public static void main(String... args) {
    List<String> nomes = List.of("Maria", "João", "Mariana");

    List<String> filtrado = nomes.stream().filter(nome -> !nome.startsWith("M")).toList();

    System.out.println(filtrado);
  }
}
3 curtidas

Era algo assim que queria! Muito obrigada! Me ajudou bastante :smiling_face_with_three_hearts:

1 curtida