Java Collections checkedCollection()方法及示例
java.util.Collections类的 checkedCollection() 方法是用来返回指定集合的动态类型安全视图的。返回的集合不会将hashCode和equals操作传递给支持的集合,而是依赖于Object的equals和hashCode方法。这对于在后援集合是一个集合或一个列表的情况下保留这些操作的合同是必要的。如果指定的集合是可序列化的,那么返回的集合将是可序列化的。
因为null被认为是任何引用类型的值,所以只要支持的集合允许插入null元素,返回的集合就允许插入。
语法
public static Collection
checkedCollection(Collection c, Class type)
参数: 该方法需要两个参数
- 要返回的动态类型安全视图的集合
- c允许持有的元素的类型
返回类型: 该方法返回指定集合的动态 类型安全视图
例1 :
// Java program to demonstrate
// checkedCollection() method
// for String value
// Importing utility classes
import java.util.*;
// Main class
public class GFG {
// Main driver method
public static void main(String[] argv) throws Exception
{
// Try block to check for exceptions
try {
// Creating an empty ArrayList by
// creating object of List of string type
List<String> arlst = new ArrayList<String>();
// Adding element to arrlist
// using add() method
// Custom input elements
arlst.add("CSS");
arlst.add("PHP");
arlst.add("HTML");
arlst.add("TajMahal");
// Printing the ArrayList
System.out.println("List: " + arlst);
// Now create typesafe view of the collection by
// creating object of Collection class of string
// type
Collection<String> tslst
= Collections.checkedCollection(
arlst, String.class);
// Printing the updated ArrayList
// after applying checkedCollection() method
System.out.println("Typesafe view of List: "
+ tslst);
}
// Catch block to handle the exceptions
catch (IllegalArgumentException e) {
// Print message to be displayed on console
// when exception occurs
System.out.println("Exception thrown : " + e);
}
}
}
输出
List: [CSS, PHP, HTML, TajMahal]
Typesafe view of List: [CSS, PHP, HTML, TajMahal]
例2 :
// Java program to Illustrate checkedCollection() method
// of Collection class for an Integer value
// Importing classes
import java.util.*;
// Main class
public class GFG {
// Main driver method
public static void main(String[] argv) throws Exception
{
// Try block to check for exception
try {
// Creating an empty ArrayList of integer type
// by declaring object of List
List<Integer> arlst = new ArrayList<Integer>();
// Adding element to ArrayList
// using add() method
arlst.add(20);
arlst.add(30);
arlst.add(40);
arlst.add(50);
// Printing the above ArrayList
System.out.println("List: " + arlst);
// now creating typesafe view of the collection
// using checkedCollection() method
Collection<Integer> tslst
= Collections.checkedCollection(
arlst, Integer.class);
// Printing the updated ArrayList
// after above operation
System.out.println("Typesafe view of List: "
+ tslst);
}
// Catch block to handle exceptions
catch (IllegalArgumentException e) {
// Display message if exception occurs
System.out.println("Exception thrown : " + e);
}
}
}
输出
List: [20, 30, 40, 50]
Typesafe view of List: [20, 30, 40, 50]