import java.util.Optional; public class Main { public static void main(String[] args) { System.out.println("===== Pair 测试 ====="); testPair(); System.out.println(); System.out.println("===== Cache 测试 ====="); testCache(); } static void testPair() { // 基本用法 Pair p1 = new Pair<>("age", 20); System.out.println("原始: " + p1); Pair p2 = p1.swap(); System.out.println("swap: " + p2); // 不同类型组合 Pair p3 = new Pair<>("isStudent", true); Pair p4 = p3.swap(); System.out.println("原始: " + p3 + " → swap: " + p4); } static void testCache() { // 容量为 3 的 LRU 缓存 Cache cache = new Cache<>(3); cache.put("a", "Apple"); cache.put("b", "Banana"); cache.put("c", "Cherry"); System.out.println("初始状态: " + cache); // 访问 a,使其成为最近使用 cache.get("a"); // 放入第4个,b 是最久未使用的,会被淘汰 cache.put("d", "Durian"); System.out.println("放入 d 后 (b 应被淘汰): " + cache); System.out.println("b 是否存在: " + cache.containsKey("b")); // false System.out.println("a 是否存在: " + cache.containsKey("a")); // true // Optional 用法演示 Optional val = cache.get("c"); val.ifPresent(v -> System.out.println("获取 c: " + v)); cache.get("x").ifPresentOrElse( v -> System.out.println("获取 x: " + v), () -> System.out.println("获取 x: 不存在(缓存未命中)") ); // 整数缓存 Cache numCache = new Cache<>(2); numCache.put(1, 3.14); numCache.put(2, 2.71); numCache.put(3, 1.41); // 1 被淘汰 System.out.println("数值缓存: " + numCache); System.out.println("key=1 存在: " + numCache.containsKey(1)); // false } }