起因:JDK1.4以前类型不明确:
1.装入集合的类型都被当作Object对待,从而失去自己的实际类型。
2.从集合中抽取时往往需要转型,效率低,容易产生错误。
解决办法:
在定义集合的时候同时定义集合中对象的类型。
1.可以在定义Collection的时候指定。
2.可以在循环时用Iterator指定
建议在上面两个地方都指定。
举例:
import java.util.*;
/**
* 说明:泛型释例(在写程序时用到集合的部分尽量使用泛型)
* 看api文档的时候只要类后面带尖括号的就可以用泛型
* 如:class ArrayList<E>、class LinkedList<E>、interface Comparable<T>
* @author huayu
* @date 2018/9/4 12:07 PM
*/
public class BasicGenericDemo {
public static void main(String[] args) {
List<String> list = new ArrayList();
list.add("yu");
list.add("hua");
for (int i = 0; i < list.size(); i++) {
//不使用泛型的话这边需要强制转换
String str = list.get(i);
System.out.println(str);
}
Collection<String> collection = new HashSet<String>();
collection.add("yu");
collection.add("hua");
for (Iterator<String> iterator = collection.iterator(); iterator.hasNext(); ) {
//不使用泛型的话这边需要强制转换
String str = iterator.next();
System.out.println(str);
}
}
}
结果
yu
hua
hua
yu
好处:增强程序的可读性和稳定性。
若有问题欢迎大家与我互动交流,如果文章帮到了你,请点小手指。另外,每周我会尽量至少更新一篇博客文章,喜欢的朋友可以加一下关注。