diff --git a/Java/TriesWithFrequencies/src/TrieFunctions.java b/Java/TriesWithFrequencies/src/TrieFunctions.java index e1611c09..c7b3e7d9 100644 --- a/Java/TriesWithFrequencies/src/TrieFunctions.java +++ b/Java/TriesWithFrequencies/src/TrieFunctions.java @@ -192,16 +192,18 @@ public static Trie merge(Trie tr1, Trie tr2) { //! @description Inserts a "word" (a list of strings) into a trie. public static Trie insert(Trie tr, List word) { - return insert(tr, word, null); + return insert(tr, word, null, null ); } //! @description Inserts a "word" (a list of strings) into a trie with a given associated value. - public static Trie insert(Trie tr, List word, Double value) { + public static Trie insert(Trie tr, List word, Double value, Double bottomVal ) { - if (value == null) { + if (value == null && bottomVal == null ) { return merge(tr, make(word, 1.0, null)); + } else if( bottomVal == null ) { + return merge(tr, make(word, value, null)); } else { - return merge(tr, make(word, 0.0, value)); + return merge(tr, make(word, value, bottomVal)); } } diff --git a/JavaTriesWithFrequencies.m b/JavaTriesWithFrequencies.m index d9cfed70..e31d3740 100644 --- a/JavaTriesWithFrequencies.m +++ b/JavaTriesWithFrequencies.m @@ -241,6 +241,12 @@ Mathematica is (C) Copyright 1988-2017 Wolfram Research, Inc. JavaTrieInsert[jTr_?JavaObjectQ, word : {_String ..}] := TrieFunctions`insert[jTr, Arrays`asList[MakeJavaObject[word]]]; +JavaTrieInsert[jTr_?JavaObjectQ, word : {_String ..}, val_?NumericQ] := + TrieFunctions`insert[jTr, Arrays`asList[JLink`MakeJavaObject[word]], JLink`MakeJavaObject[N[val]], JLink`MakeJavaObject[Null]]; + +JavaTrieInsert[jTr_?JavaObjectQ, word : {_String ..}, val_?NumericQ, bottomVal_?NumberQ] := + TrieFunctions`insert[jTr, Arrays`asList[JLink`MakeJavaObject[word]], JLink`MakeJavaObject[N[val]], JLink`MakeJavaObject[N[bottomVal]]]; + JavaTrieInsert[jTr_?JavaObjectQ, words : {{_String ..} ..}] := Block[{jTr2}, jTr2 = JavaTrieCreate[words];