Data Structures (数据结构)

Data Structures (数据结构)


概述

Agrona提供了针对原始类型优化的数据结构,避免了Java标准库中的装箱拆箱开销。

核心数据结构

1. Int2ObjectHashMap

整数到对象的高性能映射:


                import org.agrona.collections.Int2ObjectHashMap;

                final Int2ObjectHashMap<String> map = new Int2ObjectHashMap<>();

                // 添加
                map.put(1, "value1");
                map.put(2, "value2");

                // 获取
                final String value = map.get(1);

                // 遍历
                map.forEach((key, value) -> {
                    System.out.println(key + " => " + value);
                });
                

2. Object2ObjectHashMap

避免装箱的对象映射:


                import org.agrona.collections.Object2ObjectHashMap;

                final Object2ObjectHashMap<String, Order> orders =
                    new Object2ObjectHashMap<>();
                

3. IntHashSet

整数集合:


                import org.agrona.collections.IntHashSet;

                final IntHashSet set = new IntHashSet();
                set.add(1);
                set.add(2);
                set.contains(1);  // true
                

4. ArrayQueue

基于数组的队列:


                import org.agrona.collections.ArrayQueue;

                final ArrayQueue<Message> queue = new ArrayQueue<>();
                queue.offer(message);
                final Message msg = queue.poll();
                

性能特点

  • 避免装箱拆箱
  • 缓存友好的内存布局
  • 可预测的性能
  • 低内存占用

最佳实践

  1. 使用原始类型特化的集合
  2. 预分配合适的初始容量
  3. 避免频繁的rehash
  4. 使用forEach而不是迭代器

总结

Agrona的数据结构是构建高性能Java应用的重要工具。