java如何统计人数
统计人数的Java实现方法
在Java中统计人数可以通过多种方式实现,具体取决于数据来源和统计需求。以下是几种常见场景的解决方案:
使用集合统计
对于存储在集合中的人员数据,可以利用集合的size()方法直接获取人数:
List<String> personList = Arrays.asList("张三", "李四", "王五");
int count = personList.size();
System.out.println("总人数: " + count);
数据库查询统计
当数据存储在数据库中时,可以通过SQL的COUNT函数进行统计:
String sql = "SELECT COUNT(*) FROM persons";
try (Connection conn = DriverManager.getConnection(DB_URL);
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery(sql)) {
if (rs.next()) {
int count = rs.getInt(1);
System.out.println("数据库记录数: " + count);
}
}
文件数据统计
对于存储在文件中的数据,可以逐行读取并计数:
long count = 0;
try (Stream<String> stream = Files.lines(Paths.get("persons.txt"))) {
count = stream.count();
}
System.out.println("文件记录数: " + count);
条件统计
需要根据特定条件统计人数时,可以使用流式处理的filter方法:
List<Person> persons = Arrays.asList(
new Person("张三", 25),
new Person("李四", 30),
new Person("王五", 25)
);
long count = persons.stream()
.filter(p -> p.getAge() > 28)
.count();
System.out.println("年龄大于28岁的人数: " + count);
多线程统计
对于大规模数据,可以使用并行流提高统计效率:
long count = persons.parallelStream().count();
System.out.println("并行统计人数: " + count);
实时人数统计
需要实现实时增减的计数器时,可以使用AtomicInteger:

AtomicInteger counter = new AtomicInteger(0);
// 增加人数
counter.incrementAndGet();
// 减少人数
counter.decrementAndGet();
System.out.println("当前人数: " + counter.get());
选择哪种统计方法取决于具体应用场景、数据规模以及性能要求。对于简单场景,集合的size()方法足够;大数据量时考虑数据库查询或并行处理;需要线程安全时使用原子类。






