Java Collections checkedNavigableSet()

checkedNavigableSet() 用于获取指定的NavigableSet的动态类型安全视图。如果尝试插入值类型错误的元素,则抛出ClassCastException异常。

1 语法

public static <E> NavigableSet<E> checkedNavigableSet(NavigableSet<E> s, Class<E> type)   

2 参数

s:返回动态类型安全视图的NavigableSet。

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

3 返回值

返回NavigableSet的动态类型安全视图。

4 Collections checkedNavigableSet()示例1

package com.yiidian;

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

public class Demo {

    public static void main(String[] args) {
        NavigableSet<String> set = new TreeSet<>();
        //往Map插入元素
        set.add("A1");
        set.add("B2");
        set.add("C3");
        set.add("D4");
        //创建Set的类型安全视图
        System.out.println("Type safe view of the Navigable Set is: "+Collections.checkedNavigableSet(set,String.class));
    }
}

输出结果为:

Type safe view of the Navigable Set is: [A1, B2, C3, D4]

5 Collections checkedNavigableSet()示例2

package com.yiidian;

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

public class Demo {

    public static void main(String[] args) {
        NavigableSet<Integer> set = new TreeSet<>();
        //往Map插入元素
        set.add(11);
        set.add(22);
        set.add(33);
        set.add(44);
        //创建Set的类型安全视图
        NavigableSet<Integer> TypeSafeSet;
        TypeSafeSet = Collections.checkedNavigableSet(set,Integer.class);
        System.out.println("The view of the Navigable Set is: "+TypeSafeSet);
    }
}

输出结果为:

The view of the Navigable Set is: [11, 22, 33, 44]

6 Collections checkedNavigableSet()示例3

package com.yiidian;

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

public class Demo {

    public static void main(String[] args) {
        NavigableSet<String> set = new TreeSet<>();
        //往Map插入元素
        set.add("A");
        set.add("B");
        set.add("A");
        set.add("B");
        System.out.println("Type safe view of the Navigable Set1 is: "+Collections.checkedNavigableSet(set,String.class));
        NavigableSet<Integer> sset = new TreeSet<>();
        sset.add(11);
        sset.add(12);
        sset.add(11);
        sset.add(12);
        //创建地图的类型安全视图
        System.out.println("Type safe view of the Navigable Set2 is: "+Collections.checkedNavigableSet(sset,Integer.class));
        Set sset2 = sset;
        sset2.add("two");
        System.out.println("TypeSafe View: "+sset2);
    }
}

输出结果为:

Type safe view of the Navigable Set1 is: [A, B]
Type safe view of the Navigable Set2 is: [11, 12]
Exception in thread "main" java.lang.ClassCastException: java.lang.Integer cannot be cast to java.lang.String
	at java.lang.String.compareTo(String.java:111)
	at java.util.TreeMap.put(TreeMap.java:568)
	at java.util.TreeSet.add(TreeSet.java:255)
	at com.yiidian.Demo.main(Demo.java:29)

 

热门文章

优秀文章