從頭認識java-15.7 Map(1)-使用數組來簡單類比Map的建立
這一章節我們來使用數組類比一下Map,瞭解一下Map的建立。
1.Map是什嗎?
Map,映射表,也叫關聯陣列,維護“鍵-值”的關聯。
2.使用數組類比Map
package com.ray.ch15;import java.util.HashSet;import java.util.Set;public class Test {public static void main(String[] args) {AssociativeArray map = new AssociativeArray(2);map.put("one", "1");map.put("two", "2");try {map.put("three", "3");} catch (Exception e) {System.out.println("too many objects");}for (String key : map.getKeySet()) {System.out.println(map.getByKey(key));}}}class AssociativeArray {private Object[][] objects;private int index = 0;public AssociativeArray(int count) {objects = new Object[count][2];}public void put(K key, V value) {if (index >= objects.length) {throw new ArrayIndexOutOfBoundsException();}objects[index++] = new Object[] { key, value };}public Set getKeySet() {Set set = new HashSet();for (int i = 0; i < objects.length; i++) {set.add((K) objects[i][0]);}return set;}@SuppressWarnings("unchecked")public V getByKey(K key) {V v = null;for (int i = 0; i < objects.length; i++) {if (objects[i][0] == key) {v = (V) objects[i][1];}}return v;}}
輸出:
too many objects
2
1
上面的代碼使用數組來類比了Map的建立。
解釋:
(1)上面使用Object數組來作為底層資料存放區結構
(2)通過數組的賦值實現get方法
(3)通過遍曆數組實現getKeyset和get方法
注意:
上面的代碼是最簡單的實現,沒有經過任何的最佳化,存在各種的問題,我們將在後面結束java是通過什麼實現來進行最佳化的。
總結:我們這一章節主要介紹怎樣使用數組來簡單類比map的建立。
這一章節就到這裡,謝謝。