当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Java Collections checkedQueue()用法及代码示例


checkedQueue() 是 Java Collections 类的一个方法,它返回指定队列的动态类型安全视图。如果插入的元素类型错误,则会立即导致 ClassCastException。

用法

以下是 checkedQueue() 方法的声明:

public static <E> Queue<E> checkedQueue(Queue<E> queue, Class<E> type)

参数

参数 描述 必需/可选
queue 它是要为其返回动态类型安全视图的队列。 Required
type 它是 Queue 允许持有的元素类型。 Required

返回

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)





相关用法


注:本文由纯净天空筛选整理自 Java Collections checkedQueue() Method。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。