diff --git a/datastructures-trie/src/main/java/org/xbib/datastructures/trie/segment/PatternSegment.java b/datastructures-trie/src/main/java/org/xbib/datastructures/trie/segment/PatternSegment.java new file mode 100644 index 0000000..426be0d --- /dev/null +++ b/datastructures-trie/src/main/java/org/xbib/datastructures/trie/segment/PatternSegment.java @@ -0,0 +1,30 @@ +package org.xbib.datastructures.trie.segment; + +import java.util.regex.Pattern; + +public class PatternSegment implements TrieKeySegment { + + private final Pattern segment; + + public PatternSegment(Pattern segment) { + this.segment = segment; + } + + public Pattern getSegment() { + return segment; + } + + public static PatternSegment of(Pattern segment) { + return new PatternSegment(segment); + } + + @Override + public int compareTo(Pattern o) { + return segment.pattern().compareTo(o.pattern()); + } + + @Override + public String toString() { + return segment.pattern(); + } +} diff --git a/datastructures-trie/src/test/java/org/xbib/datastructures/trie/segment/TrieTest.java b/datastructures-trie/src/test/java/org/xbib/datastructures/trie/segment/TrieTest.java index 48f4199..eff6ea9 100644 --- a/datastructures-trie/src/test/java/org/xbib/datastructures/trie/segment/TrieTest.java +++ b/datastructures-trie/src/test/java/org/xbib/datastructures/trie/segment/TrieTest.java @@ -43,13 +43,12 @@ public class TrieTest { @Test public void testLargeInsertionAndSearch() { + Random random = new Random(); Trie, Long> trie = new TrieImpl<>(); List> keys = new ArrayList<>(); for (int i = 0; i < 10000; i++) { - Random random = new Random(); Long value = random.nextLong(); - String key = value.toString(); - TrieKey trieKey = TrieKeyImpl.stringKey(key); + TrieKey trieKey = TrieKeyImpl.stringKey(value.toString()); trie.put(trieKey, value); keys.add(trieKey); }