public class MyHashMap {
LinkedList[] arr= new LinkedList[9];//map 的底层是数组加链表
int size; public void put(Object key,Object value){
MyEntry e = new MyEntry(key, value);

int a = key.hashCode()%arr.length;
if(arr[a]==null){
LinkedList list=new LinkedList();
arr[a]=list;
list.add(e);
}else{
for(int i=0;i<arr[a].size();i++){
MyEntry e2=(MyEntry) arr[a].get(i);
if(e2.Key.equals(key)){
e2.Value=value;
return;
}
}
arr[a].add(e);
}
}

public Object get(Object key){
int a = key.hashCode()%arr.length;
if(arr[a]!=null){
for(int i=0;i<arr[a].size();i++){
MyEntry e=(MyEntry) arr[a].get(i);
if(e.Key.equals(key)){
return e.Value;
}
}
}
return null;
}

public static void main(String[] args) {
MyHashMap m = new MyHashMap();
m.put("dcy", new Wife("wy"));
m.put("dcy", new Wife("wy1"));
m.put("zhangsan", new Wife("lisi"));
Wife w=(Wife)m.get("dcy");
System.out.println(w.name);
}
}class MyEntry{
Objec
t Key;
Object Value;

public MyEntry(Object key, Object value) {
super();
Key = key;
Value = value;
}
}class Wife{
String name;

public Wife(String name){
this.name=name;
}
}
这个是我写的HashMap类,这样编译是没有问题的 ,但是如果把9改成9以上的数字(如上标红的数字 ),就出出现数组越界的错误(如图标绿的地方)  请问为什么?