Substituindo HashSet do Contém Método
-
19-09-2019 - |
Pergunta
Alguém poderia me dizer como eu pode substituir HashSet do método contains () para usar um jogo regex em vez de apenas é igual a ()?
Ou se não substituindo, como posso adicionar um método para usar um padrão de regex? Basicamente, eu quero ser capaz de executar regex em um HashSet contendo cordas, e eu preciso para corresponder substrings usando regex.
Se o meu método não é apropriado, por favor sugerir outros.
Obrigado. :)
Solução
Você poderia estender um HashSet da seguinte maneira:
public class RegExHashSet extends HashSet<String > {
public boolean containsRegEx( String regex ) {
for( String string : this ) {
if( string.matches( regex ) ) {
return true;
}
}
return false;
}
}
Em seguida, você pode usá-lo:
RegExHashSet set = new RegExHashSet();
set.add( "hello" );
set.add( "my" );
set.add( "name" );
set.add( "is" );
set.add( "tangens" );
if( set.containsRegEx( "tan.*" ) ) {
System.out.println( "it works" );
}
Outras dicas
Gostaria de sugerir usando Google Collections e, em particular, a método Sets.filter
. Muito mais fácil do que tentar subclasse uma coleção.
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow