• 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();
        }
  • 相关阅读:
    图解插入排序
    图解冒泡排序
    break 和continue的两种用法
    循环的使用选择
    jstl标签库使用报错index_jsp.java找不到问题
    [Android 除錯] Conflict with dependency
    jQueryMobile 網頁使用 ASP.NET Web API 服務
    Chart.js 與 ASP.NET MVC 整合應用
    HTML5 新增的 input 事件
    ASP.NET MVC 5 實作 GridView 分頁
  • 原文地址:https://www.cnblogs.com/zhangfengshi/p/9947914.html
Copyright © 2020-2023  润新知