# ImmutableCollection 不可变集合

  • ImmutableList
  • ImmutableSet
  • ImmutableMapValues

# Map 相关

  • 注意:修改关联的视图会对原始数据造成影响

# Table<R, C, V> 双键 Map

  • 允许一个 value 存在两个 key,Table 中的两个 key 分别被称为 rowKey 和 columnKey

# BiMap<K, V> 双向 Map

  • 一种 key 和 value 双向关联的数据结构

# Multimap<K, V> 多值 Map

  • 将一个键映射到多个值

# RangeMap<K extends Comparable, V> 范围 Map

  • 一种从区间到特定值的映射关系

# ClassToInstanceMap<B> 实例 Map

  • 键是 Class,值是这个 Class 对应的实例对象

# CacheBuilder

缓存回收策略(支持多种策略同时配置):

  • 基于容量:当缓存中的条目数量(或总权重)达到上限时,会使用 LRU(最近最少使用)近似算法回收条目
  • 基于时间:
    • expireAfterWrite:在写入一段时间后过期,适用于保证数据最终一致性的场景
    • expireAfterAccess:在指定时间内没有被读或写后过期,适用于清理不活跃数据
  • 基于引用:允许将键或值设置为弱引用(weakKeys / weakValues),或将值设置为软引用(softValues),以便在内存紧张时被垃圾回收器回收

# RateLimiter 限流器

  • 令牌桶算法:通过固定速率生成令牌,请求需要获取令牌才能被处理
Updated at: 2025-10-27 01:39:57