国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

再論枚舉器

2019-11-18 13:22:22
字體:
來源:轉載
供稿:網友

  我們現在可以開始演示Enumeration(枚舉)的真正威力:將穿越一個序列的操作與那個序列的基礎結構分隔開。在下面的例子里,PRintData類用一個Enumeration在一個序列中移動,并為每個對象都調用toString()方法。此時創建了兩個不同類型的集合:一個Vector和一個Hashtable。并且在它們里面分別填充Mouse和Hamster對象(本章早些時候已定義了這些類;注重必須先編譯HamsterMaze.java和WorksAnyway.java,否則下面的程序不能編譯)。由于Enumeration隱藏了基層集合的結構,所以PrintData不知道或者不關心Enumeration來自于什么類型的集合:
  
  //: Enumerators2.java
  // Revisiting Enumerations
  import java.util.*;
  
  class PrintData {
   static void print(Enumeration e) {
    while(e.hasMoreElements())
     System.out.println(
      e.nextElement().toString());
   }
  }
  
  class Enumerators2 {
   public static void main(String[] args) {
    Vector v = new Vector();
    for(int i = 0; i < 5; i++)
     v.addElement(new Mouse(i));
  
    Hashtable h = new Hashtable();
    for(int i = 0; i < 5; i++)
     h.put(new Integer(i), new Hamster(i));
  
    System.out.println("Vector");
    PrintData.print(v.elements());
    System.out.println("Hashtable");
    PrintData.print(h.elements());
   }
  } ///:~
  
  注重PrintData.print()利用了這些集合中的對象屬于Object類這一事實,所以它調用了toString()。但在解決自己的實際問題時,經常都要保證自己的Enumeration穿越某種特定類型的集合。例如,可能要求集合中的所有元素都是一個Shape(幾何外形),并含有draw()方法。若出現這種情況,必須從Enumeration.nextElement()返回的Object進行下溯造型,以便產生一個Shape。

上一篇:Java中的排序

下一篇:Java中的Hashtable

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 左云县| 隆子县| 保山市| 陕西省| 富裕县| 饶河县| 金阳县| 屯昌县| 柯坪县| 兖州市| 新河县| 华蓥市| 鹤壁市| 饶平县| 江永县| 丽江市| 那曲县| 九寨沟县| 南澳县| 济源市| 牡丹江市| 巴林右旗| 斗六市| 清新县| 南宫市| 无为县| 珠海市| 澎湖县| 西丰县| 札达县| 根河市| 普安县| 永安市| 桐柏县| 漳浦县| 吴忠市| 隆化县| 湖口县| 昭觉县| 喀什市| 西安市|