Java Java.util.Collections.frequency()函数及示例
该方法是java.util.Collections类的一个方法。它计算给定列表中特定元素的频率。它重写equals()方法以执行比较,检查指定的对象和列表中的对象是否相等。
语法:
public static int frequency(Collection c, Object o)
参数:
c:要确定o的频率的集合
o:要确定频率的对象
如果集合c为null,则会抛出Null Pointer异常。
// Java程序演示
// working of Collections.frequency()
import java.util.*;
public class GFG
{
public static void main(String[] args)
{
//创建一个带有4个项的列表
ArrayList<String> list =
new ArrayList<String>();
list.add("code");
list.add("code");
list.add("quiz");
list.add("code");
//计算单词“ code”的频率
System.out.println("单词code的频率为:" +
Collections.frequency(list, "code"));
}
}
输出:
单词code的频率为:3
使用Java.util.Collections.frequency()来自定义对象
上述方法适用于Java中已定义的对象,但是对于自定义对象,我们将不得不简单地重写equals()方法。让我们看看如何做到这一点。
// Java程序演示 working of
// Collections.frequency()
// for custom defined objects
import java.util.*;
public class GFG
{
public static void main(String[] args)
{
//创建一个学生类型的列表
ArrayList<Student> list =
new ArrayList<Student>();
list.add(new Student("Ram", 19));
list.add(new Student("Ashok", 20));
list.add(new Student("Ram", 19));
list.add(new Student("Ashok", 19));
// 计算学生名叫“Ram”,年龄为19的次数
System.out.println("学生Ram, 19的次数为:" +
Collections.frequency(list, new Student("Ram", 19)));
}
}
class Student
{
private String name;
private int age;
Student(String name, int age)
{
this.name=name;
this.age=age;
}
public String getName()
{
return name;
}
public void setName(String name)
{
this.name = name;
}
public int getAge()
{
return age;
}
public void setAge(int age)
{
this.age = age;
}
@Override
public boolean equals(Object o)
{
Student s;
if(!(o instanceof Student))
{
return false;
}
else
{
s=(Student)o;
if(this.name.equals(s.getName()) && this.age== s.getAge())
{
return true;
}
}
return false;
}
}
输出:
学生Ram,19的次数为:2
极客教程