Advertisement
Guest User

Untitled

a guest
Sep 17th, 2017
71
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 5 2.63 KB | None | 0 0
  1. import java.util.* ;
  2.  
  3. public class IteratorObservableTest {
  4.  
  5.   public static void main(String [] args) {
  6.     List list = new ArrayList() ;
  7.     list.add(new Integer(1)) ;
  8.     list.add(new Integer(9)) ;
  9.     list.add(new Integer(9)) ;
  10.     list.add(new Integer(1)) ;
  11.     list.add(new Integer(9)) ;
  12.     list.add(new Integer(1)) ;
  13.     list.add(new Integer(9)) ;
  14.     list.add(new Integer(9)) ;
  15.     list.add(new Integer(9)) ;
  16.     list.add(new Integer(9)) ;
  17.     list.add(new Integer(1)) ;
  18.     list.add(new Integer(1)) ;
  19.  
  20.     IteratorObservable it = new IteratorObservable(list) ;
  21.  
  22.     Comparator comp = new IntegerComparator() ;
  23.     SomSeqInteger observer1 = new SomSeqInteger() ;
  24.     Max observer2 = new Max(comp) ;
  25.     //LgPlLgPlMax observer3 = new LgPlLgPlMax(comp) ;
  26.    
  27.     it.addObserver(observer1) ;
  28.     it.addObserver(observer2) ;
  29.     //it.addObserver(observer3) ;
  30.    
  31.     while (it.hasNext()) { System.out.print(it.next() + " ") ; }
  32.     System.out.println() ;
  33.  
  34.     System.out.println("somme : "+observer1.getResult()) ;
  35.     System.out.println("max   : "+observer2.getResult()) ;
  36.     //System.out.println("lg    : "+observer3.getResult()) ;
  37.   }
  38.  
  39.   static class IntegerComparator implements Comparator {
  40.  
  41.     public int compare(Object o1, Object o2) {
  42.       return ((Integer)o1).compareTo(o2) ;
  43.     }
  44.  
  45.   }
  46.  
  47. }
  48.  
  49.  
  50. import java.util.* ;
  51.  
  52. public class IteratorObservable
  53. extends Observable implements Iterator {
  54.  
  55.   private Iterator iterator ;
  56.  
  57.   public IteratorObservable(Collection coll) {
  58.     iterator = coll.iterator() ;
  59.   }
  60.  
  61.   public IteratorObservable(Iterator it) {
  62.       iterator = it ;
  63.   }
  64.  
  65.   public boolean hasNext() {
  66.     return iterator.hasNext() ;
  67.   }
  68.  
  69.   public void remove() {
  70.     iterator.remove() ;
  71.   }
  72.  
  73.   public Object next() {
  74.     Object obj = iterator.next() ;
  75.     setChanged() ;
  76.     notifyObservers(obj) ;
  77.     return obj ;
  78.   }
  79.  
  80. }
  81.  
  82. import java.util.* ;
  83.  
  84. class SomSeqInteger implements Observer {
  85.  
  86.   private int result ;
  87.  
  88.   public SomSeqInteger() {
  89.     result = 0 ;
  90.   }
  91.  
  92.   public void update(Observable o, Object arg) {
  93.     int valeur = ((Integer)arg).intValue() ;
  94.     result += valeur ;
  95.   }
  96.  
  97.   public int getResult() {
  98.     return result ;
  99.   }
  100.  
  101. }
  102.  
  103.  
  104. class Max implements Observer {
  105.  
  106.   private Object result ;
  107.   private Comparator comp ;
  108.  
  109.   public Max(Comparator c) {
  110.     result = null ;
  111.     comp = c ;
  112.   }
  113.  
  114.   public void update(Observable o, Object arg) {
  115.     if (result == null) {
  116.       result = arg ;
  117.     } else {
  118.       if (comp.compare(result,arg)<0) {
  119.         result = arg ;
  120.       }
  121.     }
  122.   }
  123.  
  124.   public Object getResult() {
  125.     return result ;
  126.   }
  127.  
  128. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement