Java Java.util.Collections.frequency()函数及示例

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

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程