zoukankan      html  css  js  c++  java
  • hashmap的简易实现,基本实现PUT GET

    /*简易版的HASHMAP包括基本的GET  PUT思想

     * 从数组头部开始线性通过key比较效率低;具有固定尺寸不灵活

    */

     

     

     

    这个版本get取值按照线性思维逐个遍历数组元素比较  比较耗时,而且初始化容器具有固定尺寸也不够灵活

     

    public class AssociativeArray<K, V> {
        private Object[][] pairs;
        private int index;
    
        public AssociativeArray(int length) {
            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};// 这里按索引体现0,1;索引0放健,1放值
        }
    
        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 static void main(String[] args) {
            AssociativeArray<String, String> map = new AssociativeArray<>(6);
            map.put("sky", "blue");
            map.put("grass", "green");
            map.put("tree", "tall");
            try {
                map.put("extra", "object");
            } catch (ArrayIndexOutOfBoundsException e) {
    
            }
            System.out.println(map);
            System.out.println(map.get("sky"));
            
           
        }
    
        public String toString() {
            StringBuilder result = new StringBuilder();
            for (int i = 0; i < index; i++) {
                result.append(pairs[i][0].toString());
                result.append(" :");
                result.append(pairs[i][1].toString());
                if (i < index - 1) {
                    result.append("
    " + "==>" + index);
                }
            }
            return result.toString();
        }
  • 相关阅读:
    如何写一个简单的HTTP服务器(重做版)
    如何写一个简单的shell
    Linux守护进程
    字节序:大端法和小端法
    学习计算机需要看哪些经典书?
    IA32寄存器与x86-64寄存器的区别
    C++中extern关键字用法小结
    操作系统中陷阱,中断和异常的区别
    排查CPU占用过高的问题
    git初始化、获取git仓库
  • 原文地址:https://www.cnblogs.com/zhangfengshi/p/9947914.html
Copyright © 2011-2022 走看看