• 常用
  • 百度
  • google
  • 站内搜索

科技

Java中利用Collections.frequency统计频率的标题可以是,Java中利用Collections.frequency方法进行频率统计的教程。

  • 更新日期:2025-11-29
  • 查看次数:3988

Collections.frequency用于统计集合中某元素出现次数,接收集合与目标元素,基于equals方法比较,返回int型频次,适用于List、Set等Collection接口实现类。

如何在Java中使用Collections.frequency统计频率

在Java中,Collections.frequency 是一个静态方法,用于统计集合中某个元素出现的次数。它属于 java.util.Collections 类,使用起来非常简单,适用于任何实现 Collection 接口的集合类型,比如 List、Set 等。

基本语法

public static int frequency(Collection c, Object o)

该方法接收两个参数:

  • c:要搜索的集合
  • o:要统计出现次数的元素

返回值是元素 o 在集合 c 中出现的次数(int 类型)。

使用示例:统计List中元素频率

假设有一个字符串列表,想要统计某个名字出现的次数:

List<String> names = Arrays.asList("Alice", "Bob", "Alice", "Charlie", "Alice");
int count = Collections.frequency(names, "Alice");
System.out.println("Alice 出现了 " + count + " 次"); // 输出:3

统计基本数据类型或包装类

也可以用于整数等类型:

List<Integer> numbers = Arrays.asList(1, 2, 3, 2, 2, 4);
int countTwo = Collections.frequency(numbers, 2);
System.out.println("数字 2 出现了 " + countTwo + " 次"); // 输出:3

注意事项

  • 集合不能为 null,否则会抛出 NullPointerException
  • 元素比较基于 equals() 方法,因此自定义对象需要正确重写 equals()
  • 对 Set 集合使用时,结果只能是 0 或 1,因为 Set 不允许重复元素

自定义对象的频率统计

如果要统计自定义对象的频率,必须确保类中重写了 equals() 方法。

class Person {
String name;
public Person(String name) { this.name = name; }
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (!(o instanceof Person)) return false;
Person person = (Person) o;
return name != null ? name.equals(person.name) : person.name == null;
}
}

List<Person> people = Arrays.asList(
new Person("Tom"),
new Person("Jerry"),
new Person("Tom")
);
int tomCount = Collections.frequency(people, new Person("Tom"));
System.out.println("Tom 出现了 " + tomCount + " 次"); // 正确输出:2(前提是 equals 正确实现)
基本上就这些。Collections.frequency 使用方便,适合快速统计元素频次,尤其在处理 List 数据时很实用。

本文转载于:互联网 如有侵犯,请联系zhengruancom@outlook.com删除。
免责声明:正软商城发布此文仅为传递信息,不代表正软商城认同其观点或证实其描述。

imtoken下载 im钱包 imtoken imtoken 快连官网 imtoken imtoken imtoken imtoken imtoken wallet imtoken imtoken官网 imtoken钱包 imtoken下载 imtoken官网 imtoken钱包 imtoken安卓下载 imtoken下载 imtoken官方下载 imtoken官网 imtoken安卓下载 imtoken下载 imtoken下载 imtoken imtoken imtoken imtoken imtoken imtoken imtoken imtoken imtoken bitget wallet telegram下载 quickq VPN trust wallet v2rayn imtoken