本文是对高淇版Java三百集,HashSer内容学习的记录。Set接口实现类有HashSet,TreeSet。
HashMap的本质是一个HashMap,其中HashMap的Key作为存储数据,这也是Set中的元素不能重复的原因。Value设置为一个常量,源码中表现为,private static final Object PRESENT = new Object();。
一、HashSet常用方法
1.1 add()方法
public boolean add(E e)
1.2 remove()方法
public boolean remove(Object o)
1.3 contains()方法
public boolean contains(Object o)
二、自定义实现HashSet功能
package cn.edu.ucas.gqlearn;
import java.util.HashMap;
/**
* @Author: hyk
* @Date: 2020/7/22
* @version: 1.0
*/
public class MyHashSet<K> {
HashMap map;
private static final Object PRESENT = new Object();
public MyHashSet() {
map = new HashMap();
}
public void add(K key){
map.put(key,PRESENT);
}
public int size(){
return map.size();
}
@Override
public String toString() {
StringBuilder sb = new StringBuilder("[");
for (Object key : map.keySet()) {
sb.append(key + ",");
}
sb.setCharAt(sb.length()-1,']');
return sb.toString();
}
public static void main(String[] args) {
MyHashSet<String> myHashSet = new MyHashSet<>();
myHashSet.add("刘亦菲");
myHashSet.add("赵丽颖");
myHashSet.add("杨幂");
System.out.println(myHashSet.toString());
System.out.println(myHashSet.size());
}
}
本文深入解析了HashSet的工作原理,探讨了其与HashMap的关系,并通过自定义实现展示了HashSet如何避免元素重复,同时提供了关键方法的使用说明。
3661

被折叠的 条评论
为什么被折叠?



