Package weka.core
Class Trie
- java.lang.Object
-
- weka.core.Trie
-
- All Implemented Interfaces:
java.io.Serializable,java.lang.Cloneable,java.lang.Iterable<java.lang.String>,java.util.Collection<java.lang.String>,RevisionHandler
public class Trie extends java.lang.Object implements java.io.Serializable, java.lang.Cloneable, java.util.Collection<java.lang.String>, RevisionHandler
A class representing a Trie data structure for strings. See also Trie on WikiPedia.- Version:
- $Revision: 1.2 $
- Author:
- fracpete (fracpete at waikato dot ac dot nz)
- See Also:
- Serialized Form
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static classTrie.TrieIteratorRepresents an iterator over a triestatic classTrie.TrieNodeRepresents a node in the trie.
-
Constructor Summary
Constructors Constructor Description Trie()initializes the data structure
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description booleanadd(java.lang.String o)Ensures that this collection contains the specified element.booleanaddAll(java.util.Collection<? extends java.lang.String> c)Adds all of the elements in the specified collection to this collectionvoidclear()Removes all of the elements from this collectionjava.lang.Objectclone()returns a deep copy of itselfbooleancontains(java.lang.Object o)Returns true if this collection contains the specified element.booleancontainsAll(java.util.Collection<?> c)Returns true if this collection contains all of the elements in the specified collection.booleancontainsPrefix(java.lang.String prefix)checks whether the given prefix is stored in the triebooleanequals(java.lang.Object o)Compares the specified object with this collection for equality.java.lang.StringgetCommonPrefix()returns the common prefix for all the nodesjava.lang.StringgetRevision()Returns the revision string.Trie.TrieNodegetRoot()returns the root node of the triejava.util.Vector<java.lang.String>getWithPrefix(java.lang.String prefix)returns all stored strings that match the given prefixinthashCode()Returns the hash code value for this collection.booleanisEmpty()Returns true if this collection contains no elements.java.util.Iterator<java.lang.String>iterator()Returns an iterator over the elements in this collection.static voidmain(java.lang.String[] args)Only for testing (prints the built Trie).booleanremove(java.lang.Object o)Removes a single instance of the specified element from this collection, if it is present.booleanremoveAll(java.util.Collection<?> c)Removes all this collection's elements that are also contained in the specified collectionbooleanretainAll(java.util.Collection<?> c)Retains only the elements in this collection that are contained in the specified collectionintsize()Returns the number of elements in this collection.java.lang.Object[]toArray()Returns an array containing all of the elements in this collection.<T> T[]toArray(T[] a)Returns an array containing all of the elements in this collection; the runtime type of the returned array is that of the specified array.java.lang.StringtoString()returns the trie in string representation
-
-
-
Method Detail
-
add
public boolean add(java.lang.String o)
Ensures that this collection contains the specified element.- Specified by:
addin interfacejava.util.Collection<java.lang.String>- Parameters:
o- the string to add- Returns:
- true if the structure changed
-
addAll
public boolean addAll(java.util.Collection<? extends java.lang.String> c)
Adds all of the elements in the specified collection to this collection- Specified by:
addAllin interfacejava.util.Collection<java.lang.String>- Parameters:
c- the collection to add
-
clear
public void clear()
Removes all of the elements from this collection- Specified by:
clearin interfacejava.util.Collection<java.lang.String>
-
clone
public java.lang.Object clone()
returns a deep copy of itself- Returns:
- a copy of itself
-
contains
public boolean contains(java.lang.Object o)
Returns true if this collection contains the specified element.- Specified by:
containsin interfacejava.util.Collection<java.lang.String>- Parameters:
o- the object to check for in trie- Returns:
- true if found
-
containsAll
public boolean containsAll(java.util.Collection<?> c)
Returns true if this collection contains all of the elements in the specified collection.- Specified by:
containsAllin interfacejava.util.Collection<java.lang.String>- Parameters:
c- the collection to look for in the trie- Returns:
- true if all elements were found
-
containsPrefix
public boolean containsPrefix(java.lang.String prefix)
checks whether the given prefix is stored in the trie- Parameters:
prefix- the prefix to check- Returns:
- true if the prefix is part of the trie
-
equals
public boolean equals(java.lang.Object o)
Compares the specified object with this collection for equality.- Specified by:
equalsin interfacejava.util.Collection<java.lang.String>- Overrides:
equalsin classjava.lang.Object- Parameters:
o- the object to check for equality
-
getCommonPrefix
public java.lang.String getCommonPrefix()
returns the common prefix for all the nodes- Returns:
- the result of the search
-
getRoot
public Trie.TrieNode getRoot()
returns the root node of the trie- Returns:
- the root node
-
getWithPrefix
public java.util.Vector<java.lang.String> getWithPrefix(java.lang.String prefix)
returns all stored strings that match the given prefix- Parameters:
prefix- the prefix that all strings must have- Returns:
- all strings that match the prefix
-
hashCode
public int hashCode()
Returns the hash code value for this collection.- Specified by:
hashCodein interfacejava.util.Collection<java.lang.String>- Overrides:
hashCodein classjava.lang.Object- Returns:
- the hash code
-
isEmpty
public boolean isEmpty()
Returns true if this collection contains no elements.- Specified by:
isEmptyin interfacejava.util.Collection<java.lang.String>- Returns:
- true if empty
-
iterator
public java.util.Iterator<java.lang.String> iterator()
Returns an iterator over the elements in this collection.- Specified by:
iteratorin interfacejava.util.Collection<java.lang.String>- Specified by:
iteratorin interfacejava.lang.Iterable<java.lang.String>- Returns:
- returns an iterator over all the stored strings
-
remove
public boolean remove(java.lang.Object o)
Removes a single instance of the specified element from this collection, if it is present.- Specified by:
removein interfacejava.util.Collection<java.lang.String>- Parameters:
o- the object to remove- Returns:
- true if this collection changed as a result of the call
-
removeAll
public boolean removeAll(java.util.Collection<?> c)
Removes all this collection's elements that are also contained in the specified collection- Specified by:
removeAllin interfacejava.util.Collection<java.lang.String>- Parameters:
c- the collection to remove- Returns:
- true if the collection changed
-
retainAll
public boolean retainAll(java.util.Collection<?> c)
Retains only the elements in this collection that are contained in the specified collection- Specified by:
retainAllin interfacejava.util.Collection<java.lang.String>- Parameters:
c- the collection to use as reference- Returns:
- true if this collection changed as a result of the call
-
size
public int size()
Returns the number of elements in this collection.- Specified by:
sizein interfacejava.util.Collection<java.lang.String>- Returns:
- the number of nodes in the tree
-
toArray
public java.lang.Object[] toArray()
Returns an array containing all of the elements in this collection.- Specified by:
toArrayin interfacejava.util.Collection<java.lang.String>- Returns:
- the stored strings as array
-
toArray
public <T> T[] toArray(T[] a)
Returns an array containing all of the elements in this collection; the runtime type of the returned array is that of the specified array.- Specified by:
toArrayin interfacejava.util.Collection<java.lang.String>- Parameters:
a- the array into which the elements of this collection are to be stored- Returns:
- an array containing the elements of this collection
-
toString
public java.lang.String toString()
returns the trie in string representation- Overrides:
toStringin classjava.lang.Object- Returns:
- the trie as string
-
getRevision
public java.lang.String getRevision()
Returns the revision string.- Specified by:
getRevisionin interfaceRevisionHandler- Returns:
- the revision
-
main
public static void main(java.lang.String[] args)
Only for testing (prints the built Trie). Arguments are added to the Trie. If not arguments provided then a few default strings are uses for building.- Parameters:
args- commandline arguments
-
-