从头认识java-15.7 Map(1)-使用数组来简单模拟Map的创建

来源:互联网 发布:linux dhcp命令 编辑:程序博客网 时间:2024/06/15 15:46

这一章节我们来使用数组模拟一下Map,了解一下Map的创建。

1.Map是什么?

Map,映射表,也叫关联数组,维护“键-值”的关联。


2.使用数组模拟Map

package com.ray.ch15;import java.util.HashSet;import java.util.Set;public class Test<T> {public static void main(String[] args) {AssociativeArray<String, String> map = new AssociativeArray<String, String>(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<K, V> {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<K> getKeySet() {Set<K> set = new HashSet<K>();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的创建。


这一章节就到这里,谢谢。

-----------------------------------

目录



1 1
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 感觉肚子胀胀的怎么办 肚子胀撑的难受怎么办 肚子着凉了很疼怎么办 来月经肚子疼怎么办最快的方法 孕妇上大便有血怎么办 做完爱小腹坠痛怎么办 月经不来肚子胀怎么办 月经期间肚子疼的厉害怎么办 大姨吗来了肚子疼该怎么办 孕妇7个月拉肚子怎么办 胃疼肚子也疼怎么办 6个月孕妇肚子疼怎么办 孕妇4个月肚子疼怎么办 孕妇5个月拉肚子怎么办 4个月孕妇拉肚子怎么办 怀孕5个月拉肚子怎么办 肠胃老是胀气很不舒服怎么办 肚子里有气排不出来怎么办 小兔子不吃兔粮怎么办 泰迪肚子一直叫怎么办 狗狗肚子响该怎么办 狗狗肚子一直响怎么办 一刮风空调就响怎么办 胃里有气往上顶怎么办 胃里难受想吐怎么办 胃里感觉有水怎么办 喉咙总有气堵着怎么办 胃难受恶心想吐怎么办 胃里有气怎么办总放屁 肚子里有气很痛怎么办 胃有气排不出来怎么办 狗狗又吐又拉稀怎么办 狗吐了又拉稀怎么办 金毛狗又拉又吐怎么办 狗狗拉稀像水怎么办 狗狗拉稀带血怎么办 小狗狗又吐又拉怎么办 6个月婴儿拉肚子怎么办 一岁宝宝拉稀水怎么办 16个月宝宝拉稀怎么办 吃太多撑的胃疼怎么办