java 如何实现计数
计数实现方法
在Java中实现计数功能可以通过多种方式完成,以下是几种常见的方法:
使用基本变量 声明一个整型变量进行计数,适用于简单的计数场景:

int count = 0;
count++; // 递增计数
System.out.println("当前计数: " + count);
使用AtomicInteger
对于多线程环境下的计数,使用AtomicInteger保证线程安全:
AtomicInteger atomicCount = new AtomicInteger(0);
atomicCount.incrementAndGet(); // 原子性递增
System.out.println("原子计数: " + atomicCount.get());
使用集合统计元素
通过集合的size()方法或流式API统计元素数量:

List<String> list = Arrays.asList("a", "b", "c");
int size = list.size(); // 直接获取集合大小
long streamCount = list.stream().count(); // 使用流统计
System.out.println("流计数结果: " + streamCount);
使用Map实现频率统计 统计集合中元素的出现频率:
Map<String, Integer> frequencyMap = new HashMap<>();
List<String> items = Arrays.asList("apple", "banana", "apple");
for (String item : items) {
frequencyMap.merge(item, 1, Integer::sum); // 合并计数
}
System.out.println("频率统计: " + frequencyMap);
使用LongAdder(JDK8+)
高并发场景下比AtomicInteger性能更优:
LongAdder adder = new LongAdder();
adder.increment(); // 递增操作
System.out.println("LongAdder计数: " + adder.sum());
性能与场景选择
- 单线程简单计数:基本变量
- 低竞争多线程:
AtomicInteger - 高并发场景:
LongAdder - 元素频率统计:
Map.merge()或流式API - 集合大小:直接调用
size()或stream().count()
注意事项
- 多线程环境下必须使用线程安全的计数器
- 频繁更新的计数器避免使用锁机制
- 大数据量统计考虑使用并行流(
parallelStream())






