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

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

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

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

    大家都知道Set的實(shí)現(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());
      }
    可是輸出卻和我想的大相徑庭。(我認(rèn)為只輸出 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)過我的修改,終于實(shí)現(xiàn)了HashSet應(yīng)該發(fā)揮的功能,呵呵。



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

    評(píng)論

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

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

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

    導(dǎo)航

    統(tǒng)計(jì)

    常用鏈接

    留言簿(11)

    隨筆分類(48)

    文章分類(29)

    常去逛逛

    搜索

    積分與排名

    最新評(píng)論

    閱讀排行榜

    評(píng)論排行榜

    主站蜘蛛池模板: 国产亚洲综合网曝门系列| 国产精品久免费的黄网站| 亚洲乱码一区二区三区在线观看 | 免费观看理论片毛片| 亚洲午夜精品一区二区公牛电影院 | 国产精品怡红院永久免费| 亚洲色欲www综合网| 又大又硬又爽又粗又快的视频免费| 亚洲免费视频网站| 0588影视手机免费看片| 亚洲av乱码一区二区三区香蕉| 黄色片在线免费观看| 亚洲色成人网站WWW永久四虎| 日韩免费三级电影| 欧亚一级毛片免费看| 中文字幕亚洲不卡在线亚瑟| 在线人成免费视频69国产| 亚洲视频在线观看一区| 99免费观看视频| 亚洲综合精品伊人久久| 五月婷婷亚洲综合| 精品在线免费观看| 亚洲同性男gay网站在线观看| 日韩免费视频播放| a级毛片免费观看视频| 亚洲精品日韩专区silk| 国产精品免费看香蕉| 岛国岛国免费V片在线观看| 久久国产亚洲高清观看| 日本一区免费电影| 可以免费观看的毛片| 久久久久亚洲国产| 亚洲天堂男人影院| 又黄又爽无遮挡免费视频| a毛看片免费观看视频| 亚洲AV无码久久久久网站蜜桃| 免费v片在线观看| 亚洲免费在线播放| 男女猛烈xx00免费视频试看| 亚洲情XO亚洲色XO无码| 免费看美女让人桶尿口|