Java中的LinkedBlockingQueue size()方法

Java中的LinkedBlockingQueue size()方法

LinkedBlockingQueue的 size() 方法返回它包含的元素数量。当队列为空时,size()返回0,当队列已满时,size()返回队列的容量。
语法:

public int size()

返回值: 此方法返回LinkedBlockingQueue中元素的数量。返回类型为int。
以下程序说明了LinkedBlockingQueue类的size()方法:
程序1: 在LinkedBlockingQueue上执行add和remove操作。在每个操作之后,使用size()打印队列的大小。

//Java程序演示LinkedBlockingQueue的size()方法
 
import java.util.concurrent.LinkedBlockingQueue;
 
public class GFG {
 
    public static void main(String[] args)
        throws InterruptedException
    {
        //定义LinkedBlockingQueue的容量
        int capacityOfQueue = 4;
 
        //创建LinkedBlockingQueue对象
        LinkedBlockingQueue<String> linkedQueue
            = new LinkedBlockingQueue<String>(capacityOfQueue);
 
        //使用put()方法添加元素
        linkedQueue.put("Karan");
        linkedQueue.put("Suraj");
 
        //使用size()方法获取队列大小
        int size = linkedQueue.size();
 
        //打印队列元素和队列大小
        System.out.println("Queue中的元素为:" + linkedQueue);
        System.out.println("Queue的大小为:" + size);
 
        //添加更多元素
        linkedQueue.put("Harsh");
        linkedQueue.put("Rahul");
 
        //使用size()方法获取队列大小
        size = linkedQueue.size();
 
        //打印队列元素和队列大小
        System.out.println("Queue中的元素为:" + linkedQueue);
        System.out.println("Queue的大小为:" + size);
 
        //尝试从队列中删除元素
        boolean try1 = linkedQueue.remove("Karan");
        System.out.println("元素名Karan被移除了:" + try1);
 
        //使用size()方法获取队列大小
        size = linkedQueue.size();
 
        //打印队列元素和队列大小
        System.out.println("Queue中的元素为:" + linkedQueue);
        System.out.println("Queue的大小为:" + size);
    }
}

输出:

Queue中的元素为:[Karan, Suraj]
Queue的大小为:2

Queue中的元素为:[Karan, Suraj, Harsh, Rahul]
Queue的大小为:4

元素名Karan被移除了:true
Queue中的元素为:[Suraj, Harsh, Rahul]
Queue的大小为:3

程序2: 在包含员工对象的LinkedBlockingQueue上执行add和remove操作。在每个操作之后,使用size()打印队列的大小。

// Java程序演示LinkedBlockingQueue的size()方法
 
import java.util.Iterator;
import java.util.concurrent.LinkedBlockingQueue;
 
public class GFG {
 
    public void sizeDemo() throws InterruptedException
    {
        // 定义LinkedBlockingQueue的容量
        int capacityOfQueue = 5;
 
        // 创建LinkedBlockingQueue对象
        LinkedBlockingQueue<Employee> linkedQueue
            = new LinkedBlockingQueue<Employee>(capacityOfQueue);
 
        // 使用size()方法获取队列的大小
        int size = linkedQueue.size();
        System.out.println("队列的大小 " + size);
 
        // 向LinkedBlockingQueue中添加元素
        Employee emp1 = new Employee("Ranjeet", "测试员", "29000", 27);
        Employee emp2 = new Employee("Sanjeet", "经理", "98000", 34);
        Employee emp3 = new Employee("Karan", "分析师", "44000", 30);
 
        // 使用put(E e)方法向linkedQueue中添加employee对象
        linkedQueue.put(emp1);
        linkedQueue.put(emp2);
        linkedQueue.put(emp3);
 
        // 打印linkedQueue的细节
        System.out.println("\n添加元素后,队列变为:");
        Iterator itr = linkedQueue.iterator();
        while (itr.hasNext())
            System.out.println(itr.next());
 
        // 使用size()方法获取队列的大小
        size = linkedQueue.size();
        System.out.println("\n添加元素后,队列的大小 " + size);
 
        // 从linkedQueue中删除employee2的姓名Sanjeet和Ranjeet
        linkedQueue.remove(emp2);
        linkedQueue.remove(emp1);
 
        // 打印linkedQueue的细节
        System.out.println("\n删除某些元素后,队列变为:");
        itr = linkedQueue.iterator();
        while (itr.hasNext())
            System.out.println(itr.next());
 
        // 使用size()方法获取队列的大小
        size = linkedQueue.size();
        System.out.println("\n删除元素后,队列的大小 " + size);
    }
 
    // 创建一个Employee对象,包含姓名、职位、薪资和年龄等属性
    public class Employee {
 
        public String name;
        public String position;
        public String salary;
        public int Age;
 
        Employee(String name, String position,
                 String salary, int age)
        {
            this.name = name;
            this.position = position;
            this.salary = salary;
            this.Age = age;
        }
 
        @Override
        public String toString()
        {
            return "Employee [姓名=" + name + ", 职位="
                + position + ", 薪资=" + salary + ", 年龄=" + Age + "]";
        }
    }
 
    // 主方法
    public static void main(String[] args)
    {
        GFG gfg = new GFG();
        try {
            gfg.sizeDemo();
        }
        catch (InterruptedException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }
}

输出:

队列的大小 0

添加元素后,队列变为:
Employee [姓名=Ranjeet, 职位=测试员, 薪资=29000, 年龄=27]
Employee [姓名=Sanjeet, 职位=经理, 薪资=98000, 年龄=34]
Employee [姓名=Karan, 职位=分析师, 薪资=44000, 年龄=30]

添加元素后,队列的大小 3

删除某些元素后,队列变为:
Employee [姓名=Karan, 职位=分析师, 薪资=44000, 年龄=30]

删除元素后,队列的大小 1

参考资料:
https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/LinkedBlockingQueue.html#size–

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程