Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

198
Visualizações
¿Puedo usar HashMap de caracteres en lugar de String?

Quiero tener una función para construir una cadena a partir de caracteres ingresados y detener la construcción si obtiene un carácter de entrada que contiene.

Sé que puedo usar String.contains() para esto, pero estoy aprendiendo sobre HashMaps y me pregunto si una forma más rápida de hacerlo podría ser almacenar los caracteres ingresados en un HashMap y usar el método HashMap.contains() .

over 4 years ago · Santiago Trujillo
3 Respostas
Responde à pergunta

0

HashMap::containsKey es O(1) , String::contains no lo es . La implementación puede cambiar según la versión de JVM, pero es más como O (n).

Entonces, sí, usar un HashMap para buscar un valor debería ser más rápido (en datos pequeños probablemente no notará la diferencia) que llamar a String::contains . Pero un Map almacena una clave y un valor, si no le importa el valor, puede usar un Set (tenga cuidado, todos los valores son únicos en este tipo de colección) porque Set::contains es O(1) .


Como @ n247s mencionado en el comentario. Excepto si realmente tiene un problema de rendimiento, String::contains debería funcionar bien y hacer que el código sea más fácil de leer.

over 4 years ago · Santiago Trujillo Relatório

0

Un Set sería una buena estructura de datos para usar aquí.

Sin embargo, solo toma nota de 1 cosa,

Si necesita una búsqueda que distinga case-sensitive , puede usar un HashSet . Ejemplo

 Set<String> set = new HashSet<>();

De lo contrario, si necesita una búsqueda que no distinga case-insensitive entonces un TreeSet . Ejemplo

 Set<String> set = new TreeSet<>(String.CASE_INSENSITIVE_ORDER);
over 4 years ago · Santiago Trujillo Relatório

0

HashMap<> es solo una clase que amplía la interfaz Map<> , puede usar containsKey() o containsValue() . Si desea recorrer los valores en HashMap , puede usar el método HashMaps.values() y combinar/agregar el valor a String.

NO PROBADO:

 int count = -1; String new = ""; for (char c : map.values()) { count++; if (string.charAt(count).equals(c)) break; new.concat(c); }
over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda