Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.util.* ;
- public class IteratorObservableTest {
- public static void main(String [] args) {
- List list = new ArrayList() ;
- list.add(new Integer(1)) ;
- list.add(new Integer(9)) ;
- list.add(new Integer(9)) ;
- list.add(new Integer(1)) ;
- list.add(new Integer(9)) ;
- list.add(new Integer(1)) ;
- list.add(new Integer(9)) ;
- list.add(new Integer(9)) ;
- list.add(new Integer(9)) ;
- list.add(new Integer(9)) ;
- list.add(new Integer(1)) ;
- list.add(new Integer(1)) ;
- IteratorObservable it = new IteratorObservable(list) ;
- Comparator comp = new IntegerComparator() ;
- SomSeqInteger observer1 = new SomSeqInteger() ;
- Max observer2 = new Max(comp) ;
- //LgPlLgPlMax observer3 = new LgPlLgPlMax(comp) ;
- it.addObserver(observer1) ;
- it.addObserver(observer2) ;
- //it.addObserver(observer3) ;
- while (it.hasNext()) { System.out.print(it.next() + " ") ; }
- System.out.println() ;
- System.out.println("somme : "+observer1.getResult()) ;
- System.out.println("max : "+observer2.getResult()) ;
- //System.out.println("lg : "+observer3.getResult()) ;
- }
- static class IntegerComparator implements Comparator {
- public int compare(Object o1, Object o2) {
- return ((Integer)o1).compareTo(o2) ;
- }
- }
- }
- import java.util.* ;
- public class IteratorObservable
- extends Observable implements Iterator {
- private Iterator iterator ;
- public IteratorObservable(Collection coll) {
- iterator = coll.iterator() ;
- }
- public IteratorObservable(Iterator it) {
- iterator = it ;
- }
- public boolean hasNext() {
- return iterator.hasNext() ;
- }
- public void remove() {
- iterator.remove() ;
- }
- public Object next() {
- Object obj = iterator.next() ;
- setChanged() ;
- notifyObservers(obj) ;
- return obj ;
- }
- }
- import java.util.* ;
- class SomSeqInteger implements Observer {
- private int result ;
- public SomSeqInteger() {
- result = 0 ;
- }
- public void update(Observable o, Object arg) {
- int valeur = ((Integer)arg).intValue() ;
- result += valeur ;
- }
- public int getResult() {
- return result ;
- }
- }
- class Max implements Observer {
- private Object result ;
- private Comparator comp ;
- public Max(Comparator c) {
- result = null ;
- comp = c ;
- }
- public void update(Observable o, Object arg) {
- if (result == null) {
- result = arg ;
- } else {
- if (comp.compare(result,arg)<0) {
- result = arg ;
- }
- }
- }
- public Object getResult() {
- return result ;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement