实现自定义的Map集合

实现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,"布牛笔"));
	}
}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值