KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > uk > co > jezuk > mango > algorithms > Unique


1 package uk.co.jezuk.mango.algorithms;
2
3 /**
4  * @version $Id$
5  */

6 public class Unique
7 {
8     static public void execute(java.util.Iterator JavaDoc iterator, java.util.Comparator JavaDoc comparator)
9     {
10         if(!iterator.hasNext())
11             return;
12
13         Object JavaDoc prev = iterator.next();
14         while(iterator.hasNext())
15         {
16             Object JavaDoc next = iterator.next();
17             if(match(comparator, prev, next))
18                 iterator.remove();
19             else
20                 prev = next;
21         } // while
22
} // execute
23

24     static public boolean match(java.util.Comparator JavaDoc c, Object JavaDoc o1, Object JavaDoc o2)
25     {
26         if(c != null)
27             return (c.compare(o1, o2) == 0);
28
29         if((o1 == null) && (o2 == null))
30             return true;
31
32         return o1.equals(o2);
33     } // compare
34

35     private Unique() { }
36 } // class Unique
37
Popular Tags