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. :)

War es hilfreich?

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.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top