Package weka.core

# Class Trie

java.lang.Object
weka.core.Trie

All Implemented Interfaces:
  `Serializable`, `Cloneable`, `Iterable<String>`, `Collection<String>`, `RevisionHandler`

public class Trie extends Object implements Serializable, Cloneable, Collection<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 class`
`Trie.TrieIterator`
Represents an iterator over a trie
`static class`
`Trie.TrieNode`
Represents a node in the trie.

## Constructor Summary

Constructors
Constructor
Description
`Trie()`
initializes the data structure

## Method Summary

Modifier and Type
Method
Description
`boolean`
`add(String o)`
Ensures that this collection contains the specified element.
`boolean`
`addAll(Collection<? extends String> c)`
Adds all of the elements in the specified collection to this collection
`void`
`clear()`
Removes all of the elements from this collection
`Object`
`clone()`
returns a deep copy of itself
`boolean`
`contains(Object o)`
Returns true if this collection contains the specified element.
`boolean`
`containsAll(Collection<?> c)`
Returns true if this collection contains all of the elements in the specified collection.
`boolean`
`containsPrefix(String prefix)`
checks whether the given prefix is stored in the trie
`boolean`
`equals(Object o)`
Compares the specified object with this collection for equality.
`String`
`getCommonPrefix()`
returns the common prefix for all the nodes
`String`
`getRevision()`
Returns the revision string.
`Trie.TrieNode`
`getRoot()`
returns the root node of the trie
`Vector<String>`
`getWithPrefix(String prefix)`
returns all stored strings that match the given prefix
`int`
`hashCode()`
Returns the hash code value for this collection.
`boolean`
`isEmpty()`
Returns true if this collection contains no elements.
`Iterator<String>`
`iterator()`
Returns an iterator over the elements in this collection.
`static void`
`main(String[] args)`
Only for testing (prints the built Trie).
`boolean`
`remove(Object o)`
Removes a single instance of the specified element from this collection, if it is present.
`boolean`
`removeAll(Collection<?> c)`
Removes all this collection's elements that are also contained in the specified collection
`boolean`
`retainAll(Collection<?> c)`
Retains only the elements in this collection that are contained in the specified collection
`int`
`size()`
Returns the number of elements in this collection.
`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.
`String`
`toString()`
returns the trie in string representation

### Methods inherited from class java.lang.Object

`getClass, notify, notifyAll, wait, wait, wait`

### Methods inherited from interface java.util.Collection

`parallelStream, removeIf, spliterator, stream, toArray`

### Methods inherited from interface java.lang.Iterable

`forEach`

## Constructor Details

### Trie

public Trie()
initializes the data structure

## Method Details

### add

public boolean add(String o)
Ensures that this collection contains the specified element.

Specified by:
  `add` in interface `Collection<String>`
Parameters:
  `o` - the string to add
Returns:
  true if the structure changed

### addAll

public boolean addAll(Collection<? extends String> c)
Adds all of the elements in the specified collection to this collection

Specified by:
  `addAll` in interface `Collection<String>`
Parameters:
  `c` - the collection to add

### clear

public void clear()
Removes all of the elements from this collection

Specified by:
  `clear` in interface `Collection<String>`

### clone

public Object clone()
returns a deep copy of itself

Returns:
  a copy of itself

### contains

public boolean contains(Object o)
Returns true if this collection contains the specified element.

Specified by:
  `contains` in interface `Collection<String>`
Parameters:
  `o` - the object to check for in trie
Returns:
  true if found

### containsAll

public boolean containsAll(Collection<?> c)
Returns true if this collection contains all of the elements in the specified collection.

Specified by:
  `containsAll` in interface `Collection<String>`
Parameters:
  `c` - the collection to look for in the trie
Returns:
  true if all elements were found

### containsPrefix

public boolean containsPrefix(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(Object o)
Compares the specified object with this collection for equality.

Specified by:
  `equals` in interface `Collection<String>`
Overrides:
  `equals` in class `Object`
Parameters:
  `o` - the object to check for equality

### getCommonPrefix

public 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 Vector<String> getWithPrefix(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:
  `hashCode` in interface `Collection<String>`
Overrides:
  `hashCode` in class `Object`
Returns:
  the hash code

### isEmpty

public boolean isEmpty()
Returns true if this collection contains no elements.

Specified by:
  `isEmpty` in interface `Collection<String>`
Returns:
  true if empty

### iterator

public Iterator<String> iterator()
Returns an iterator over the elements in this collection.

Specified by:
  `iterator` in interface `Collection<String>`
Specified by:
  `iterator` in interface `Iterable<String>`
Returns:
  returns an iterator over all the stored strings

### remove

public boolean remove(Object o)
Removes a single instance of the specified element from this collection, if it is present.

Specified by:
  `remove` in interface `Collection<String>`
Parameters:
  `o` - the object to remove
Returns:
  true if this collection changed as a result of the call

### removeAll

public boolean removeAll(Collection<?> c)
Removes all this collection's elements that are also contained in the specified collection

Specified by:
  `removeAll` in interface `Collection<String>`
Parameters:
  `c` - the collection to remove
Returns:
  true if the collection changed

### retainAll

public boolean retainAll(Collection<?> c)
Retains only the elements in this collection that are contained in the specified collection

Specified by:
  `retainAll` in interface `Collection<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:
  `size` in interface `Collection<String>`
Returns:
  the number of nodes in the tree

### toArray

public Object[] toArray()
Returns an array containing all of the elements in this collection.

Specified by:
  `toArray` in interface `Collection<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:
  `toArray` in interface `Collection<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 String toString()
returns the trie in string representation

Overrides:
  `toString` in class `Object`
Returns:
  the trie as string

### getRevision

public String getRevision()
Returns the revision string.

Specified by:
  `getRevision` in interface `RevisionHandler`
Returns:
  the revision

### main

public static void main(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