用 guava collection library 依照资料特性及你读写的需求选择 ListMultimap 或 SetMultimap 的实作 如果资料彼此独立 可试试开多个 thread 写入 此时要使用 Multimaps.synchronizedSetMultimap(com.google.common.collect.SetMultimap<K, V>) 达到 thread safe一开始建立 multimap 物件时 要给预估的容量 假设资料平均分配 那就是 700万除以bucket数量 避免过多rehashing700万笔数目也不小 可开启JDK附的Jvisualvm工具看memory 使用状况 调大 heap size