javase之自定义实现map(重点)

本文探讨了Map的底层实现原理,通过数组配合链表的方式进行存储。详细解析了数组中如何存储链表的头部节点地址,以及这种数据结构如何支持Map的高效操作。
摘要由CSDN通过智能技术生成
package com.ljl.container;
/**
 * 该版本为1.0,效率较低,需要循环遍历
 * 自定义实现Map的功能
 * @author Richard
 *map:存放键值对,根据键对象找对应的值对象,键不能重复
 */
public class MyMapOne {
	//使用数据来存放键值对
	MyEntry[] arr=new MyEntry[999];
	int size;
	//放数据
	public void put(Object key,Object value) {
		MyEntry entry=new MyEntry(key, value);
		for(int i=0;i<size;i++) {
			if(arr[i].key.equals(key)){
				arr[i].value=value;//覆盖value值
				return;
			}
		}
		arr[size++]=entry;
	}
	//取数据
	public Object get(Object key) {
		for(int i=0;i<size;i++) {
			if(arr[i].key.equals(key)){
				return arr[i].value;
			}
		}
		return null;
	}
	public boolean containsKey(Object key) {
		for(int i=0;i<size;i++) {
			if(arr[i].key.equals(key)){
				return true;
			}
		}
		return false;
		
	}
	public boolean containsValue(Object value) {
		for(int i=0;i<size;i++) {
			if(arr[i].value.equals(value)){
				return
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值