Java基于二维数组自定义的map

直接上代码作为记录:

package com.example.demo.day4.test1;

import java.util.regex.MatchResult;

/**
 *  @Author: caesar
 *  @Date:2020年12月22日 14:12:04
 *  @Description: 自己定义的map
 */
public class MyMap<K,V>{
    public static void main(String[] args) {
        MyMap<String,Object> myMap = new MyMap<String, Object>(10);
        myMap.put("name","wsq");
        myMap.put("age",13);
        myMap.put("length",185);
        myMap.put("name","ZS");
        System.out.println(myMap.toString());
        System.out.println(myMap.get("age"));
    }
    private Object array[][];
    private int index = 0;
    // 初始化数组长度
    public MyMap(int length){
        array = new Object[length][2];
    }
    // 添加数据
    public void put(K key, V value){
        // 重复值直接进行覆盖
            for(int i = 0; i < index; i++){
                if(array[i][0].equals(key)){
                    array[i][1] = value;
                    return;
                }
            }
        if(index >= array.length){
            throw new ArrayIndexOutOfBoundsException();
        }
        array[index++] = new Object[]{key,value};
    }
    // 获取数据
    public V get(K key){
        V value = null;
        for(int i = 0; i < index; i++){
            if(array[i][0].equals(key)){
                value = (V) array[i][1];
            }
        }
        return value;
    }

    /**
     *  @Author: caesar
     *  @Date:2020年12月22日 14:12:59
     *  @Description: 输出值
     */
    public String toString(){
        StringBuffer stringBuffer = new StringBuffer();
        for(int i = 0; i < index; i++){
            stringBuffer.append(array[i][0]);
            stringBuffer.append(":");
            stringBuffer.append(array[i][1]);
            stringBuffer.append("
");
        }
        return stringBuffer.toString();
    }
}
原文地址:https://www.cnblogs.com/mcjhcnblogs/p/14173452.html