You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
62 lines
1.8 KiB
62 lines
1.8 KiB
package com.homework; // 必须和你的项目包结构一致
|
|
|
|
import java.util.HashMap;
|
|
import java.util.Map;
|
|
|
|
public class Cache<K, V> {
|
|
// 用 HashMap 存储键值对,key 和 value 都是泛型
|
|
private Map<K, V> cacheMap;
|
|
|
|
// 构造方法:初始化 HashMap
|
|
public Cache() {
|
|
cacheMap = new HashMap<>();
|
|
}
|
|
|
|
// 存数据:把 key 和 value 放到缓存里
|
|
public void put(K key, V value) {
|
|
cacheMap.put(key, value);
|
|
}
|
|
|
|
// 取数据:根据 key 从缓存里拿 value
|
|
public V get(K key) {
|
|
return cacheMap.get(key);
|
|
}
|
|
|
|
// 删除数据:根据 key 删除缓存里的 value
|
|
public void remove(K key) {
|
|
cacheMap.remove(key);
|
|
}
|
|
|
|
// 清空缓存
|
|
public void clear() {
|
|
cacheMap.clear();
|
|
}
|
|
|
|
// 获取缓存大小
|
|
public int size() {
|
|
return cacheMap.size();
|
|
}
|
|
|
|
// 主方法:测试用
|
|
public static void main(String[] args) {
|
|
// 创建缓存:key 是学生姓名(String),value 是分数(Integer)
|
|
Cache<String, Integer> scoreCache = new Cache<>();
|
|
|
|
// 测试存数据
|
|
scoreCache.put("小明", 90);
|
|
scoreCache.put("小红", 95);
|
|
System.out.println("缓存大小:" + scoreCache.size());
|
|
|
|
// 测试取数据
|
|
System.out.println("小明的分数:" + scoreCache.get("小明"));
|
|
System.out.println("小红的分数:" + scoreCache.get("小红"));
|
|
|
|
// 测试删除数据
|
|
scoreCache.remove("小红");
|
|
System.out.println("删除小红后,缓存大小:" + scoreCache.size());
|
|
|
|
// 测试清空缓存
|
|
scoreCache.clear();
|
|
System.out.println("清空后,缓存大小:" + scoreCache.size());
|
|
}
|
|
}
|