java 基础篇 一 (自定义map)
鉴于以工作快四年,整理一下这些年使用的jdk 常用的类,首先看应用较多的map,jdk 的map 有很多实现类,鉴于时间有限,先实现一个简单Map,话不多说,代码如下:
package com.pingan.pastry.basic.MyInterface.impl;
import com.pingan.pastry.basic.MyInterface.MyMap;
public class MyHashMap<K, V> implements MyMap<K, V> {
private Object[][] objects;
private int index;
public MyHashMap(int length) {
objects = new Object[length][2];
}
@Override
public void put(K key, V value) throws Exception {
if (index > objects.length) {
throw new Exception("长度越界");
}
//key 存在
for (int i = 0; i < objects.length; i++) {
Object[] object = objects[i];
if (object != null && object[0] != null) {
if (object[0].equals(key)) {
objects[i][0] = key;
objects[i][1] = value;
}
}
}
objects[index++] = new Object[]{key, value};
}
@Override
public V get(K key) {
for (int i = 0; i < objects.length; i++) {
Object[] object = objects[i];
if (object[0].equals(key)) {
return (V) objects[i][1];
}
}
return null;
}
@Override
public boolean containsKey(K key) {
for (int i = 0; i < objects.length; i++) {
Object[] object = objects[i];
if (object[0].equals(key)) {
return true;
}
}
return false;
}
public static void main(String[] args) throws Exception {
MyMap map = new MyHashMap<>(10);
map.put("name", "张三");
map.put("age", 1);
map.put("sex", "男");
System.out.println("name: " + map.get("name"));
System.out.println("age: " + map.get("age"));
System.out.println("sex: " + map.get("sex"));
}
如下是输出结果:
name: 张三
age: 1
sex: 男
本文介绍了作者为满足工作需求,使用Java基础实现了一个简单的MyHashMap类,展示了如何插入、获取和检查键值对,以及在main方法中演示了其实例应用。

2337

被折叠的 条评论
为什么被折叠?



