Aufschalten HashSet der Contains-Methode
-
19-09-2019 - |
Frage
Kann mir jemand sagen, wie ich außer Kraft setzen kann HashSet die enthalten () -Methode einen Regex zu verwenden, anstatt nur equals ()?
Oder wenn nicht überschreiben, wie ich eine Methode hinzufügen können eine RegexMuster zu benutzen? Grundsätzlich möchte ich regex auf einem HashSet enthalten Strings in der Lage sein zu laufen, und ich brauche Teil übereinstimmen regex.
Wenn meine Methode nicht geeignet ist, bitte andere vorschlagen.
Danke. :)
Lösung
Sie konnten einen HashSet die folgende Art und Weise erweitern:
public class RegExHashSet extends HashSet<String > {
public boolean containsRegEx( String regex ) {
for( String string : this ) {
if( string.matches( regex ) ) {
return true;
}
}
return false;
}
}
Dann können Sie es verwenden:
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" );
}
Andere Tipps
würde ich vorschlagen, mit Google Sammlungen , und insbesondere die Sets.filter
Methode. Viel einfacher, als zu versuchen, eine Sammlung zu Unterklasse.