×

Loading...

Topic

This topic has been archived. It cannot be replied.
  • 工作学习 / IT杂谈 / 问题进一步具体化...奖品也
    我刚才的对问题的描述可能太泛泛, 让人难以回答,现将问题具体陈述如下:

    有一个LinkedList Class,需要为它写一个LinkedListEnumeration Class,
    题目的提示是这个Class要Implement Enumeration这个interface,
    里边的constructor要以一个LinkedList 的object为parameter...

    我想知道的就是如何implement这个constructor... :-)
    (我个人理解就是如何将一个Enumeration Class跟一个Container Class联系起来.)
    • How about
      class ListNode {
      Container data;
      ListNode next;
      ....
      }

      public class List implements Enumeration {
      private ListNode firstNode;
      private ListNode lastNode;

      public List(){
      firstNode=lastNode=null;
      }

      public List(ListNode ){...}

      public boolean hasMoreElements(){...}

      public ListNode nextElement(){...}

      ....
      }
    • 试一下这个,我认为比较贴题。运行看看
      import java.util.*;
      public class LinkedListEnumeration extends LinkedList implements Enumeration{
      private Iterator it;
      private LinkedList list;
      LinkedListEnumeration(LinkedList llist){
      it = llist.iterator();
      list = llist;
      }
      public boolean hasMoreElements(){
      return it.hasNext();
      }
      public Object nextElement(){
      return it.next();
      }
      public String toString(){
      return "["+list+"]";
      }
      public static void main(String[] args){
      LinkedList l1 = new LinkedList();
      l1.add("this");l1.add("is");l1.add("a");l1.add("test");
      LinkedListEnumeration le = new LinkedListEnumeration(l1);
      System.out.println("travel the content in this List is:");
      while(le.hasMoreElements())
      System.out.print(le.nextElement() + " ");
      System.out.println();
      System.out.println(le);

      }
      }
      • 有点问题,更正一下
        import java.util.*;
        class LinkedListEnumerationNew{
        private Iterator itor;
        private LinkedList lklist;
        private class LEnumeration implements Enumeration{
        LEnumeration(){
        itor = lklist.iterator();
        }
        public boolean hasMoreElements(){
        return itor.hasNext();
        }
        public Object nextElement(){
        return itor.next();
        }
        }
        public Enumeration elements(){
        return new LEnumeration();
        }
        LinkedListEnumerationNew(LinkedList ll){
        lklist = ll;
        }
        // option methods
        public String toString(){
        return ""+lklist;
        }
        public boolean add(Object o){
        return lklist.add(o);
        }
        }

        public class TestSamples{
        public static void main(String argc[]){
        LinkedListEnumerationNew le = new LinkedListEnumerationNew(new LinkedList());
        le.add("this");
        le.add("is");
        le.add("test");
        System.out.println(le);
        Enumeration enum = le.elements();
        while(enum.hasMoreElements())
        System.out.println(enum.nextElement()+" ");
        }
        }