<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    開發(fā)JTree時關(guān)于HashSet的一點啟發(fā)

    大家都知道Set的實現(xiàn)類HashSet中只能存放不重復(fù)的元素,但是它也是可以添加重復(fù)元素的,只不過是相同的元素被覆蓋了而已,如下面的代碼:

    Set<String> set=new HashSet<String>();
      set.add("a");
      set.add("b");
      set.add("c");
      set.add("a");
      set.add("b");
        for (String s : set)
      {
       System.out.println(s);
      }

    輸出為:
                    b
                    c
                    a

    于是我天真的寫下了下面的代碼
    Set<DefaultMutableTreeNode> nodes=new HashSet<DefaultMutableTreeNode>();
      DefaultMutableTreeNode node1=new DefaultMutableTreeNode("a");
      DefaultMutableTreeNode node2=new DefaultMutableTreeNode("b");
      DefaultMutableTreeNode node3=new DefaultMutableTreeNode("b");
      DefaultMutableTreeNode node4=new DefaultMutableTreeNode("a");
      nodes.add(node1);
      nodes.add(node2);
      nodes.add(node3);
      nodes.add(node4);
      for (DefaultMutableTreeNode node : nodes)
      {
       System.out.println(node.getUserObject());
      }
    可是輸出卻和我想的大相徑庭。(我認為只輸出 a b)
    輸出:
                b
                a
                b
                a

    于是我深入研究了一下HashSet中的add方法的源代碼,恍然大悟。將以上程序更改如下:

    Set<MyTreeNode > nodes=new HashSet<MyTreeNode>();
      MyTreeNode node1=new MyTreeNode("a"); 
      MyTreeNode node2=new MyTreeNode("b"); 
      MyTreeNode node3=new MyTreeNode("b"); 
      MyTreeNode node4=new MyTreeNode("a");
      nodes.add(node1);
      nodes.add(node2);
      nodes.add(node3);
      nodes.add(node4);
      for (DefaultMutableTreeNode node : nodes)
      {
       System.out.println(node.getUserObject());
      }

    其中MyTreeNode 是我自定義的類。

    class MyTreeNode extends DefaultMutableTreeNode
    {
     MyTreeNode(Object obj)
     {
      super(obj);
     }

     @Override
     public int hashCode()
     {
      // TODO Auto-generated method stub
      return this.getUserObject().hashCode();
     }
     @Override
     public boolean equals(Object obj)
     {
      // TODO Auto-generated method stub
      MyTreeNode treeNode=(MyTreeNode)obj;
      return this.getUserObject().equals(treeNode.getUserObject());
     }
     
    }

    經(jīng)過我的修改,終于實現(xiàn)了HashSet應(yīng)該發(fā)揮的功能,呵呵。



    posted on 2007-03-03 11:16 我為J狂 閱讀(1567) 評論(1)  編輯  收藏 所屬分類: 圖形用戶界面

    評論

    # re: 開發(fā)JTree時關(guān)于HashSet的一點啟發(fā)[未登錄] 2007-03-03 12:16 ronghai

    哈哈,這個在java解惑上提示  回復(fù)  更多評論   

    <2007年3月>
    25262728123
    45678910
    11121314151617
    18192021222324
    25262728293031
    1234567

    導(dǎo)航

    統(tǒng)計

    常用鏈接

    留言簿(11)

    隨筆分類(48)

    文章分類(29)

    常去逛逛

    搜索

    積分與排名

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 亚洲人成色4444在线观看| 24小时日本在线www免费的| 337P日本欧洲亚洲大胆艺术图 | 亚洲日韩中文字幕| 国产精品亚洲产品一区二区三区| 性做久久久久久久免费看| 久久这里只精品国产免费10| 一个人免费观看日本www视频| 亚洲国产午夜精品理论片在线播放 | 成年人免费的视频| 在线毛片片免费观看| 青娱乐在线视频免费观看| 亚洲午夜成人精品无码色欲| 久久亚洲日韩精品一区二区三区| 中文字幕中韩乱码亚洲大片| 四虎永久免费地址在线网站| 成人毛片免费视频| 亚洲中文无码永久免费 | 亚洲男人电影天堂| 亚洲AV人无码激艳猛片| 国产亚洲美女精品久久久2020| 国产极品美女高潮抽搐免费网站| 在线看片无码永久免费视频| 5555在线播放免费播放| 久久精品免费视频观看| a视频在线免费观看| 亚洲黄片手机免费观看| 免费一级毛片在线播放放视频| 亚洲国产aⅴ成人精品无吗| 亚洲成人激情小说| 国产成人精品日本亚洲18图| 亚洲一区二区三区免费观看 | 国产精品久久免费| 亚洲视频免费播放| 日韩欧毛片免费视频| 日本在线高清免费爱做网站| av无码久久久久不卡免费网站| 91精品成人免费国产片| 国产91免费视频| 日韩吃奶摸下AA片免费观看| 成年人免费网站在线观看|