基于HashSet的HashMap的简单实现
来源:互联网 发布:java demo是什么 编辑:程序博客网 时间:2024/06/18 08:29
package cn.yimeng.util;import java.io.Serializable;import java.util.HashSet;import java.util.Iterator;import java.util.Map;/** * HashMap简单实现 基于hashSet * * @author yimeng * @version 1.0 */public class Set2Map<K, V> extends HashSet<SimpleEntry<K, V>> { public void clear() { super.clear(); } public boolean containsKey(K key) { return super.contains(new SimpleEntry<K, V>(key, null)); } public boolean containsValue(Object value) { for (SimpleEntry<K, V> se : this) { if (se.getValue() == value) { return true; } } return false; } public V get(Object key) { for (SimpleEntry<K, V> se : this) { if (se.getKey().equals(key)) { return se.getValue(); } } return null; } public V put(K key, V value) { super.add(new SimpleEntry<>(key, value)); return value; } public void putAll(Map<? extends K, ? extends V> map) { for (K key : map.keySet()) { super.add(new SimpleEntry<>(key, map.get(key))); } } public V removeEntry(K key) { for (Iterator<SimpleEntry<K, V>> it = this.iterator(); it.hasNext(); ) { SimpleEntry<K, V> next = it.next(); if (next.getKey().equals(key)) { V value = next.getValue(); it.remove(); return value; } } return null; } public int size() { return super.size(); }}class SimpleEntry<K, V> implements Map.Entry<K, V>, Serializable { private final K key; private V value; public SimpleEntry(K key, V value) { this.key = key; this.value = value; } public SimpleEntry(Map.Entry<? extends K, ? extends V> entry) { this.key = entry.getKey(); this.value = entry.getValue(); } @Override public K getKey() { return key; } @Override public V getValue() { return value; } @Override public V setValue(V value) { V oldValue = this.value; this.value = value; return oldValue; } @Override public boolean equals(Object o) { if (this == o) { return true; } if (o.getClass() == SimpleEntry.class) { SimpleEntry se = (SimpleEntry) o; return getKey().equals(se.getKey()); } return false; } @Override public int hashCode() { return key == null ? 0 : key.hashCode(); } @Override public String toString() { return key + "=" + value; }}
阅读全文
0 0
- 基于HashSet的HashMap的简单实现
- java集合类之基于HashSet的HashMap的实现
- jdk:HashSet基于HashMap实现
- 基于HashMap实现简单的缓存处理
- HashSet的实现,与hashMap的关系
- HashMap跟Hashtable,hashset的实现原理
- 实现自己的hashset和hashmap
- HashMap和HashSet的底层实现
- java中HashMap和HashSet的实现
- wordcount的Java实现(hashmap hashset)
- hashset,hashmap的区别
- Java的HashMap,HashSet
- hashmap 的简单实现
- HashMap的简单实现
- HashMap、HashTable、HashSet分析比较以及TreeSet的简单介绍
- ArrayList、TreeSet、TreeMap、HashSet和HashMap的简单使用示例
- HashMap、HashSet、HashTable的区别
- HashSet HashTable HashMap的区别
- user limit 轴的指定位置
- servlet过滤器入门
- 20年后的人月神话
- cartographer源码分析(7)-common-math.h
- 【《Real-Time Rendering 3rd》 提炼总结】(五) 第六章 · 纹理贴图及相关技术 The Texturing
- 基于HashSet的HashMap的简单实现
- sqlserver脱机导入导出数据库及数据
- CSS书写规范
- 快速失败机制
- kotlin基本语法(二)
- Python 语法知识 --函数,闭包
- LeetCode#118. Pascal's Triangle LeetCode#119. Pascal's Triangle II
- 浅析Java中的数据类型
- 推荐系统案例分析-->event_recommendation_competition