When the entries of a dictionary are put in order, does the order depend on the definition? No.
Should the compareTo()
method depend on the definiton?
No.
Fill in the blank to complete the compareTo()
method.
public int compareTo( Entry other ) { return getWord().compareTo( other.getWord() ); }
Another solution is:
public int compareTo( Entry other ) { return word.compareTo( other.word ); }
Here is a program that tests that the Entry
class works as expected.
import java.util.Arrays; class Entry implements Comparable<Entry> { . . . } class EntryTester { public static void main ( String[] args ) { Entry[] wordList = new Entry[10]; wordList[0] = new Entry( "WWW", "World Wide Web" ); wordList[1] = new Entry( "HTTP","Hypertext Transport Protocol" ); wordList[2] = new Entry( "DNS", "Domain Name System" ); wordList[3] = new Entry( "AWT", "Application Windowing Toolkit" ); wordList[4] = new Entry( "CPU", "Central Processing Unit" ); wordList[5] = new Entry( "RAM", "Random Access Memory" ); wordList[6] = new Entry( "URL", "Uniform Resource Locator" ); wordList[7] = new Entry( "GUI", "Graphical User Interface" ); wordList[8] = new Entry( "API", "Application Programming Interface" ); wordList[9] = new Entry( "ROM", "Read-only Memory" ); Arrays.sort( wordList ); for ( int j=0; j<wordList.length; j++ ) System.out.println( wordList[j].toString() ); } }
The program outputs:
API Application Programming Interface AWT Application Windowing Toolkit CPU Central Processing Unit DNS Domain Name System GUI Graphical User Interface HTTP Hypertext Transport Protocol RAM Random Access Memory ROM Read-only Memory URL Uniform Resource Locator WWW World Wide Web
The sort()
method used our compareTo()
to determine the order of the entries.
Must an array be in sorted order for it to be searched?