Java教程

Java Collections checkedQueue()

checkedQueue()是Java Collections 类的一种方法,该方法返回指定Queue的动态类型安全视图。如果插入的元素类型错误,将立即导致ClassCastException。

语法

以下是 checkedQueue()方法的声明:
public static <E> Queue<E> checkedQueue(Queue<E> queue, Class<E> type)

参数

参数 说明 必需/可选
queue 这是要为其返回动态类型安全视图的队列。 必需
type 这是允许Queue保留的元素类型。 必需

返回

checkedQueue()方法返回指定队列的动态类型安全视图。

异常

ClassCastException

兼容版本

Java 1.8及更高版本

示例1

import java.util.*;
public class CollectionsCheckedQueueExample1 {
    public static void main(String[] args) {
        //Create list       
          Queue<String> queue = new PriorityQueue<String>();
          queue.add("A");
          queue.add("B");
          queue.add("C");
          queue.add("D");
          //Create type safe view of the List          
          System.out.println("Type safe view of the Queue is: "+Collections.checkedQueue(queue,String.class));
          }
}
输出:
Type safe view of the Queue is: [A, B, C, D]

示例2

import java.util.*;
public class CollectionsCheckedQueueExample2 {
    public static void main(String[] args) {
         //Create list       
          Queue<Integer> queue = new PriorityQueue<Integer>();
          queue.add(55);
          queue.add(66);
          queue.add(77);
          queue.add(77);
          queue.add(88);
          queue.add(66);
          //Create type safe view of the List          
          System.out.println("Type safe view of the Queue is: "+Collections.checkedQueue(queue,Integer.class));
          }
}
输出:
Type safe view of the Queue is: [55, 66, 66, 77, 88, 77]

示例3

import java.util.*;
public class CollectionsCheckedQueueExample3 {
    public static void main(String[] args) {
        Queue<Integer> queue = new PriorityQueue<>();
            queue = Collections.checkedQueue(queue, Integer.class);
            queue.offer(1);
            queue.offer(2);
            queue.offer(5);
            System.out.println("\n"+queue);
            Queue queue2 = queue;
            queue2.offer("Four");
            System.out.println(queue2);
          }
}
输出:
[1, 2, 5]
Exception in thread "main" java.lang.ClassCastException: Attempt to insert class java.lang.String element into collection with element type class java.lang.Integer
    at java.base/java.util.Collections$CheckedCollection.typeCheck(Collections.java:3038)
    at java.base/java.util.Collections$CheckedQueue.offer(Collections.java:3188)
    at myPackage.CollectionCheckedQueueExample3.main(CollectionCheckedQueueExample3.java:12)

昵称: 邮箱:
Copyright © 2022 立地货 All Rights Reserved.
备案号:京ICP备14037608号-4