您的位置:首页 > 编程语言 > Java开发

简单实现java中的hashmap

2013-11-26 17:02 579 查看
package com.cym.collection;

import java.util.LinkedList;

public class MyHashMap {
private int size;
private Object [] table = new Object[999];
public void put(Object key,Object value){
if (key!=null) {
int hash = key.hashCode()%table.length;
hash = hash<0?-hash:hash;
LinkedList list = null;
Entry entry = null;
if (table[hash]==null) {
list = new LinkedList<>();
entry = new Entry(key, value);
list.add(entry);
}else{
list = (LinkedList)table[hash];
for (int i = 0; i < list.size(); i++) {
entry = (Entry)list.get(i);
if (entry.getKey().equals(key)) {
entry.setValue(value);
}

}
list.add(entry);
}
table[hash] = list;
size++;
}
}
public Object get(Object key){
if (key!=null) {
int hash = key.hashCode()%table.length;
hash = hash<0?-hash:hash;
LinkedList list = null;
if (table[hash]==null) {
//Exception
}else{
list = (LinkedList)table[hash];
for (int i = 0; i < list.size(); i++) {
Entry entry = (Entry)list.get(i);
if (entry.getKey().equals(key)) {
return entry.getValue();
}

}
}
}
return null;
}
public int size(){
return size;
}
}
class Entry{

Object key;
Object value;
public Entry(Object key, Object value) {
super();
this.key = key;
this.value = value;
}
public Object getKey() {
return key;
}
public void setKey(Object key) {
this.key = key;
}
public Object getValue() {
return value;
}
public void setValue(Object value) {
this.value = value;
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: