You are on page 1of 1

public class TrieString implements Comparable<Object>{ private static int counter; private String s; public TrieString(String s){ this.

s = s; } public static int getCounter(){ return counter; } @Override public int hashCode(){ counter += 16*s.length(); return s.hashCode(); } @Override public int compareTo(Object arg0) { counter += 16*Math.min(s.length(), arg0.toString().length()); return s.compareTo(arg0.toString()); } @Override public boolean equals(Object arg0){ return this.compareTo(arg0) == 0; } public char charAt(int index){ counter += 16; return s.charAt(index); } public byte byteAt(int index){ counter += 8; char c = s.charAt(index/2); if (index % 2 == 0){ return (byte)(c & 0xff); } else { return (byte)((c & 0xff00) >> 8); } } public boolean bitAt(int index){ counter += 1; char c = s.charAt(index/16); return ((c & (1 << (index % 16))) != 0); } public int length(){ return s.length(); } public String toString(){ return s; } public char[] toCharArray() { counter += 16*s.length(); return s.toCharArray(); } }

You might also like