实现Map集合
Student 类
package com.bennett.test0929;
public class Student {
private int code;
private String name;
public Student() {
super();
}
public Student(int code, String name) {
super();
this.code = code;
this.name = name;
}
}
MyMap类
package com.bennett.test0929;
import java.util.Collection;
import java.util.HashSet;
import java.util.Map;
import java.util.Set;
/**
* @version:
* @Description:实现Map集合
* @author bennett
* @date: 2021年10月1日 下午11:55:22
* @param <K>
* @param <V>
*/
public class MyMap<K, V> implements Map<K, V>{
// 内部类 MyEntry<K, V>
class MyEntry<K, V> implements Entry<K, V>{
private K key;
private V value;
public MyEntry(K key, V value) {
super();
this.key = key;
this.value = value;
}
@Override
public K getKey() {
return key;
}
@Override
public V getValue() {
return value;
}
@Override
public V setValue(V value) {
this.value = value;
return value;
}
}
// set集合
private Set<MyEntry<K, V>> set = new HashSet<>();
@Override
public int size() {
// TODO Auto-generated method stub
return 0;
}
@Override
public boolean isEmpty() {
// TODO Auto-generated method stub
return false;
}
@Override
public boolean containsKey(Object key) {
// TODO Auto-generated method stub
return false;
}
@Override
public boolean containsValue(Object value) {
// TODO Auto-generated method stub
return false;
}
@Override
public V get(Object key) {
for (MyEntry<K, V> myEntry : set) {
if (myEntry.getKey().equals(key)) {
return myEntry.getValue();
}
}
return null;
}
@Override
public V put(K key, V value) {
// set.add(new MyEntry(key, value));
set.add(new MyEntry<K, V>(key, value));
return value;
}
@Override
public V remove(Object key) {
// TODO Auto-generated method stub
return null;
}
@Override
public void putAll(Map<? extends K, ? extends V> m) {
// TODO Auto-generated method stub
}
@Override
public void clear() {
// TODO Auto-generated method stub
}
@Override
public Set<K> keySet() {
// TODO Auto-generated method stub
return null;
}
@Override
public Collection<V> values() {
// TODO Auto-generated method stub
return null;
}
@Override
public Set<Entry<K, V>> entrySet() {
// TODO Auto-generated method stub
return null;
}
}
MyMapTest
package com.bennett.test0929;
import org.junit.jupiter.api.AfterEach;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
class MyMapTest {
private MyMap<String, Student> map = new MyMap<String, Student>();
@BeforeEach
void setUp() throws Exception {
}
@AfterEach
void tearDown() throws Exception {
}
@Test
void testGet() {
testPut();
System.out.println(map.get("学渣"));
}
@Test
void testPut() {
map.put("学霸", new Student(110,"牛笔"));
map.put("学渣", new Student(111,"布牛笔"));
}
}