package com.zzy.test;
public class MyMap<K,V> {
private Object[][] pairs;
//代表map的一个K,V数据对应的下标
private int index;
public MyMap(int length){
//定义一个二维数组length代表map的容量,长度为2一个为key一个为value
pairs = new Object[length][2];
}
public void put(K key,V value){
if (index>=pairs.length){
throw new ArrayIndexOutOfBoundsException();
}
pairs[index++] = new Object[]{key,value};
}
public V get(K key){
for (int i = 0; i <index ; i++) {
if (key.equals(pairs[i][0])){
return (V)pairs[i][1];
}
}
return null;
}
public String toString(){
StringBuilder stringBuilder = new StringBuilder();
for (int i = 0; i <index ; i++) {
stringBuilder.append(pairs[i][0].toString());
stringBuilder.append(" : ");
stringBuilder.append(pairs[i][1].toString());
if (i<index-1){
stringBuilder.append("\n");
}
}
return stringBuilder.toString();
}
public static void main(String[] args) {
MyMap<String, String> myMap = new MyMap<String, String>(8);
try {
myMap.put("1","一");
myMap.put("2","二");
myMap.put("3","三");
myMap.put("4","四");
myMap.put("5","五");
myMap.put("6","六");
myMap.put("7","七");
myMap.put("8","八");
myMap.put("9","九");
} catch (ArrayIndexOutOfBoundsException e) {
System.out.println("超了!超了!");
}
System.out.println(myMap);
System.out.println(myMap.get("3"));
}
}
输出:
超了!超了!
1 : 一
2 : 二
3 : 三
4 : 四
5 : 五
6 : 六
7 : 七
8 : 八
三