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

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());
}
}