首页 > 其他 > 详细

自己实现一个Map

时间:2020-03-16 01:26:36      阅读:85      评论:0      收藏:0      [点我收藏+]
 1 public class MyMap<K, V> {
 2     private Node<K, V>[] nodes;//定义一个Node数组保存键值对
 3     private  int size;//逻辑长度
 4     //内部静态类,用于保存key,value值
 5     private static class Node<K, V>{
 6         K key;
 7         V value;
 8         Node(K key, V value){
 9             this.key = key;
10             this.value = value;
11         }
12     }
13     //存储元素
14     public void put(K key , V value){
15         if(nodes == null) {
16             nodes = new Node[10];
17         }
18         int index = indexOfKey(key);
19         if(index != -1){
20             nodes[index].value = value;
21         }else {
22             nodes[size] = new Node<>(key, value);
23             size++;
24         }
25     }
26     
27     public V get(K key){
28         int index = indexOfKey(key);
29         if(index != -1){
30             return nodes[index].value;
31         }
32         return null;
33     }
34     
35     public int size(){
36         return size;
37     }
38     
39     //查找key是否存在已经存在数组nodes中,如果找不到返回-1,找到则返回数组下标
40     private int indexOfKey(K key){
41         for(int i = 0; i < nodes.length; i++){
42             if(key.equals(this.nodes[i].key)){
43                 return i;
44             }
45         }
46         return -1;
47     }
48 }

 

自己实现一个Map

原文:https://www.cnblogs.com/qmillet/p/12501133.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!