Java Collections.frequency()方法使用教程

作者 | 2020年4月23日

在Java中,Collections.frequency()方法用于统计某个元素的在集合中的出现次数。

语法

public static int frequency(Collection c, Object o) 
参数:
c: 传入的集合
o: 待统计的元素
如果传入的集合c是null,则会抛出NullPointerException。

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("The frequency of the word code is: "+ 
                                Collections.frequency(list, "code")); 
    } 
} 

输出

The frequency of the word code is: 3

Java.util. Collections.frequency()方法用于统计自定义对象的出现次数

在上面,我们已经演示了使用Java.util. Collections.frequency()方法统计String在集合中的出现次数,那么如何统计自定义对象在某个集合中的出现次数?

很简单,重载对象的equals()方法即可:

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的出现次数
        System.out.println("The frequency of the Student Ram, 19 is: "+ 
                                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; 
    } 
} 

输出

The frequency of the Student Ram,19 is: 2

发表评论

电子邮件地址不会被公开。 必填项已用*标注