diff --git a/src/main/java/org/ahocorasick/trie/State.java b/src/main/java/org/ahocorasick/trie/State.java index 9108838..1173fe9 100644 --- a/src/main/java/org/ahocorasick/trie/State.java +++ b/src/main/java/org/ahocorasick/trie/State.java @@ -41,7 +41,7 @@ public class State { private State failure = null; /** whenever this state is reached, it will emit the matches keywords for future reference */ - private List emits = null; + private Set emits = null; public State() { this(0); @@ -83,7 +83,7 @@ public class State { public void addEmit(String keyword) { if (this.emits == null) { - this.emits = new ArrayList(); + this.emits = new TreeSet<>(); } this.emits.add(keyword); } diff --git a/src/test/java/org/ahocorasick/trie/TrieTest.java b/src/test/java/org/ahocorasick/trie/TrieTest.java index 5627376..6cc7ff7 100644 --- a/src/test/java/org/ahocorasick/trie/TrieTest.java +++ b/src/test/java/org/ahocorasick/trie/TrieTest.java @@ -48,8 +48,8 @@ public class TrieTest { Collection emits = trie.parseText("ushers"); assertEquals(3, emits.size()); // she @ 3, he @ 3, hers @ 5 Iterator iterator = emits.iterator(); - checkEmit(iterator.next(), 1, 3, "she"); checkEmit(iterator.next(), 2, 3, "he"); + checkEmit(iterator.next(), 1, 3, "she"); checkEmit(iterator.next(), 2, 5, "hers"); } @@ -87,10 +87,10 @@ public class TrieTest { checkEmit(iterator.next(), 0, 1, "he"); checkEmit(iterator.next(), 2, 3, "he"); checkEmit(iterator.next(), 4, 5, "he"); - checkEmit(iterator.next(), 0, 7, "hehehehe"); checkEmit(iterator.next(), 6, 7, "he"); - checkEmit(iterator.next(), 2, 9, "hehehehe"); + checkEmit(iterator.next(), 0, 7, "hehehehe"); checkEmit(iterator.next(), 8, 9, "he"); + checkEmit(iterator.next(), 2, 9, "hehehehe"); } @Test