Contar caracteres
Map<Character, Integer> counts = new HashMap<>();
for (char c : input.toCharArray()) {
counts.merge(c, 1, Integer::sum);
}
Aclara si se ignoran espacios, mayúsculas, acentos o caracteres Unicode.
Filtrar y transformar
List<Integer> result = values.stream()
.filter(n -> n > 0)
.map(n -> n * 2)
.sorted()
.collect(Collectors.toList());
Collectors.toList() funciona desde Java 8. En Java 16+ puedes escribir stream.toList().
Buscar y expresar ausencia
Optional<User> found = users.stream()
.filter(user -> user.getId().equals(id))
.findFirst();
return found.orElseThrow(() -> new NotFoundException("User not found"));
Define qué sucede si no hay coincidencia y respeta el tipo de retorno del contrato.
Resolver la prueba
- Reformula entrada, salida y restricciones.
- Pregunta por casos límite ambiguos.
- Propón el enfoque y su complejidad.
- Escribe una solución clara.
- Prueba caso normal, vacío, uno, duplicados y límites.
- Explica tus decisiones.