Java Collections checkedQueue()

checkedQueue() 返回指定队列的动态类型安全视图。如果插入的元素类型错误,将抛出ClassCastException异常。

1 语法

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

2 参数

queue:返回动态类型安全视图的队列。

type:允许Queue保留的元素的类型。

3 返回值

返回指定队列的动态类型安全视图。

4 Collections checkedQueue()示例1

package com.yiidian;

/**
 * 一点教程网: http://www.yiidian.com
 */
/**
 * Java Collections.checkedQueue的例子
 */
import java.util.*;

public class Demo {

    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]

5 Collections checkedQueue()示例2

package com.yiidian;

/**
 * 一点教程网: http://www.yiidian.com
 */
/**
 * Java Collections.checkedQueue的例子
 */
import java.util.*;

public class Demo {

    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]

6 Collections checkedQueue()示例3

package com.yiidian;

/**
 * 一点教程网: http://www.yiidian.com
 */
/**
 * Java Collections.checkedQueue的例子
 */
import java.util.*;

public class Demo {

    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.util.Collections$CheckedCollection.typeCheck(Collections.java:3037)
	at java.util.Collections$CheckedQueue.offer(Collections.java:3187)
	at com.yiidian.Demo.main(Demo.java:21)

 

热门文章

优秀文章