泛型的概念、使用泛型的好处
------------恢复内容开始------------
泛型的概念
泛型:是一种未知的数据类型,当我们不知道使用什么数据类型的时候可以使用泛型
泛型也可以看出一个变量,用来接受数据类型
创建集合对象的时候就会确定泛型的数据类型
会把数据类型作为参数传递,把String赋值给泛型E
会把数据类型作为参数传递,把Stuednt赋值给泛型E
使用泛型的好处
public static void main(String[] args) {
demo();
}
/*
* 没有泛型的集合
* 好处:集合不使用泛型的话 默认的就是 Object类型
* 坏处:不安全 ,会引发异常
*/
private static void demo() {
ArrayList list = new ArrayList();
list.add(1);
list.add(2);
list.add(3);
for (Object o : list) {
System.out.println(o);
}
}
}
这是没有使用泛型的集合
public static void main(String[] args) {
demo();
demo1();
}
/*
* 没有泛型的集合
* 好处:集合不使用泛型的话 默认的就是 Object类型
* 坏处:不安全 ,会引发异常
*/
private static void demo() {
ArrayList list = new ArrayList();
list.add(1);
list.add(2);
list.add(3);
Iterator iterator = list.iterator();
while (iterator.hasNext()) {
Object next = iterator.next();
System.out.println(next);
// 如果我想获取集合中的长度,不可以使用 Object = “123”
// 如果要使用的话 需要向下转型
String s = (String) next;
s.length();
System.out.println();
}
}
}
如果我想使用特殊的方法的话,是不可以使用的就算向下转型的话也是会报错
这个就是没有泛型集合
在来写一个有泛型的集合
public static void main(String[] args) {
// demo();
demo1();
}
/*
有泛型的集合
有泛型好处:
1.避免类型转换的麻烦,储存的是什么类型,就取出什么类型
2.把运行期异常的代码抛出,提升到编译器
弊端:
1。泛型是什么类型只能存储什么类型
*/
private static void demo1() {
ArrayList<String> list = new ArrayList<>();
list.add("aa");
list.add("bb");
list.add("cc");
// 使用迭代器遍历输出
Iterator<String> iterator = list.iterator();
while (iterator.hasNext()){
String next = iterator.next();
System.out.println(next);
// 获取字符的长度
int length = next.length();
System.out.println(length);
}
}
这个就是有泛型的好处