码迷,mamicode.com
首页 > 其他好文 > 详细

HashSet的自定义实现

时间:2018-06-19 23:25:12      阅读:327      评论:0      收藏:0      [点我收藏+]

标签:sys   ack   code   利用   remove   res   源码   com   nal   

package com.cy.collection;

import java.util.HashMap;

/**
 * HashSet自定义实现
 * 是使用hashMap实现的
 * 可以看一下HashSet的源码,非常简单,就是调用hashMap的实现
 * @author CY
 *
 */
public class HashSet {
    private HashMap map;
    private static final Object PRESENT = new Object();

    public HashSet() {
        map = new HashMap();
    }
    
    /**
     * set的不可重复就是利用了hashMap的键对象不可重复
     * @param o
     */
    public void add(Object o){
        map.put(o, PRESENT);
    }
    
    public boolean remove(Object o) {
        return map.remove(o)==PRESENT;
    }
    
    public int size() {
        return map.size();
    }
}

 

Test.java测试类:

package com.cy.collection;

public class Test {

    public static void main(String[] args) {
        HashSet set = new HashSet();
        set.add("aa");
        set.add(new String("aa"));
        set.add("bb");
        
        System.out.println(set.size());
    }
    
    //输出:2
}

 

HashSet的自定义实现

标签:sys   ack   code   利用   remove   res   源码   com   nal   

原文地址:https://www.cnblogs.com/tenWood/p/9201592.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!