Changeset 70 for collected/trunk
- Timestamp:
- 03/25/08 20:32:12 (10 months ago)
- Location:
- collected/trunk/java-dsu
- Files:
-
- 1 added
- 3 modified
- 1 moved
-
dyssy08a.txt (added)
-
src/com/bitstructures/DSU.java (modified) (1 diff)
-
src/com/bitstructures/DSUExample1.java (modified) (1 diff)
-
src/com/bitstructures/DSUExample2.java (modified) (4 diffs)
-
src/com/bitstructures/SortKey.java (moved) (moved from collected/trunk/java-dsu/src/com/bitstructures/ComparableExtractor.java) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
collected/trunk/java-dsu/src/com/bitstructures/DSU.java
r67 r70 7 7 8 8 public class DSU { 9 private static class DecoratedObject<T, V extends Comparable<V>> {9 private static class DecoratedObject<T,C extends Comparable<C>> { 10 10 public T obj; 11 public Vcomparable;11 public C comparable; 12 12 } 13 13 14 /* 15 private static Comparator<DecoratedObject> comparator = new Comparator<DecoratedObject>() { 16 public int compare(DecoratedObject o1, DecoratedObject o2) { 17 return o1.comparable.compareTo(o2.comparable); 18 } 19 }; 20 */ 21 private static class DecoratedObjectComparator<T,V extends Comparable<V>> implements Comparator<DecoratedObject<T,V>> { 22 public int compare(DecoratedObject<T,V> o1, DecoratedObject<T,V> o2) { 14 private static class DecoratedComparator<T,C extends Comparable<C>> 15 implements Comparator<DecoratedObject<T,C>> { 16 public int compare(DecoratedObject<T,C> o1, DecoratedObject<T,C> o2) { 23 17 return o1.comparable.compareTo(o2.comparable); 24 18 } 25 19 } 26 20 27 public static <T,V extends Comparable<V>> void sort(List<T> list, ComparableExtractor<T,V> extractor) { 21 public static <T,C extends Comparable<C>> void sort(List<T> list, 22 SortKey<T,C> key) { 28 23 // decorate 29 24 int size = list.size(); 30 DecoratedObject<T,V>[] decorated = (DecoratedObject<T,V>[]) new DecoratedObject[size]; 25 DecoratedObject<T,C>[] decorated 26 = (DecoratedObject<T,C>[]) new DecoratedObject[size]; 31 27 for (int i = 0; i < size; i++) { 32 decorated[i] = new DecoratedObject<T, V>();28 decorated[i] = new DecoratedObject<T,C>(); 33 29 decorated[i].obj = list.get(i); 34 decorated[i].comparable = extractor.extract(list.get(i));30 decorated[i].comparable = key.getValue(list.get(i)); 35 31 } 36 32 // sort 37 Decorated ObjectComparator<T,V> comparator = new DecoratedObjectComparator<T,V>();33 DecoratedComparator<T,C> comparator = new DecoratedComparator<T,C>(); 38 34 Arrays.sort(decorated, comparator); 39 35 // undecorate -
collected/trunk/java-dsu/src/com/bitstructures/DSUExample1.java
r69 r70 9 9 public static void main(String[] args) { 10 10 List<String> a = Arrays.asList("This is a test string from Andrew".split("\\s")); 11 DSU.sort(a, new ComparableExtractor<String,String>() {12 public String extract(String s) {11 DSU.sort(a, new SortKey<String,String>() { 12 public String getValue(String s) { 13 13 return s.toLowerCase(); 14 14 } -
collected/trunk/java-dsu/src/com/bitstructures/DSUExample2.java
r69 r70 22 22 String line = r.readLine(); 23 23 while(line != null) { 24 String[] wordsThisLine = line.split("\\s ");24 String[] wordsThisLine = line.split("\\s+"); 25 25 for (String word : wordsThisLine) { 26 words.add(word); 26 if (!word.trim().equals("")) { 27 words.add(word); 28 } 27 29 } 28 30 line = r.readLine(); … … 35 37 List<String> a = readWords(filename); 36 38 long t1 = System.currentTimeMillis(); 37 DSU.sort(a, new ComparableExtractor<String,String>() {38 public String extract(String s) {39 DSU.sort(a, new SortKey<String,String>() { 40 public String getValue(String s) { 39 41 c.increment(); 40 42 return s.toLowerCase(); … … 45 47 // System.out.println(s); 46 48 // } 47 System.out.println("DSU");48 System.out.println("called " + c.i + " times");49 System.out.println((t2 - t1) + " millis");49 System.out.println("DSU"); 50 System.out.println("called " + c.i + " times"); 51 System.out.println((t2 - t1) + " millis"); 50 52 } 51 53 … … 64 66 // System.out.println(s); 65 67 // } 66 System.out.println("Collections.sort");67 System.out.println("called " + c.i + " times");68 System.out.println((t2 - t1) + " millis");68 System.out.println("Collections.sort"); 69 System.out.println("called " + c.i + " times"); 70 System.out.println((t2 - t1) + " millis"); 69 71 } 70 72 71 73 public static void main(String[] args) throws IOException { 72 dsu(" 10940.txt");73 withComparator(" 10940.txt");74 dsu("dyssy08a.txt"); 75 withComparator("dyssy08a.txt"); 74 76 } 75 77 } -
collected/trunk/java-dsu/src/com/bitstructures/SortKey.java
r67 r70 3 3 import java.lang.Comparable; 4 4 5 public interface ComparableExtractor<T,V extends Comparable<V>> {6 public V extract(T obj);5 public interface SortKey<T,C extends Comparable<C>> { 6 public C getValue(T obj); 7 7 }
