泛型的概述
泛型是一种未知的数据类型 当我们不知道使用什么数据类型的时候 可以使用泛型
泛型也可以看出是一个变量 用来接收数据类型
当我们创建集合是就确定泛型类型
使用泛型的好处
我们都知道集合中是可以存放任意对象的 只要把对象存储集合后 那么这时他们都会被提升成Object类型 当我们在取出每个对象 并且进行相应的操作 这时必须采用类型转换
创建集合不使用泛型的好处:集合不使用泛型 默认的类型就是Object类型 可以存储任意类型的数据
创建集合不使用泛型的坏处:不安全 会引发异常
代码:
public static void main(String[] args) {
Collection<Object> list = new ArrayList<>();
list.add("张三");
list.add(15);
list.add(15.0);
list.add(true);
Iterator<Object> iterator = list.iterator();
while (iterator.hasNext()){
Object next = iterator.next();
System.out.println(next);
//要求使用String类里的length方法判断长度
//向下转型
String s=(String) next;
System.out.println(s.length());
}
}
运行结果:
报出的是类型转换异常 不能将Interger类型转变成String类型
不使用Object类型
代码:
public static void main(String[] args) {
Collection<String> list = new ArrayList<>();
list.add("张三");
list.add("李四");
list.add("王五");
Iterator<String> iterator = list.iterator();
while (iterator.hasNext()){
String next = iterator.next();
System.out.println(next);
String s=(String) next;
System.out.println(s.length());
}
}
运行结果
后面的数字就是我们String的长度 因为是遍历 所以只能一个一个算长度 比如:张三 长度为2 ...
泛型的定义和使用
定义一个含有泛型的类 模拟ArrayList集合
泛型是一个未知的数据类型 当我们不确定什么什么数据类型的时候 可以使用泛型
代码:
模拟集合类:
public class DemoArray<E> {
private E name;
public E getName() {
return name;
}
public void setName(E name) {
this.name = name;
}
}
测试类:
public static void main(String[] args) {
//泛型使用Integer
DemoArray<Integer> array = new DemoArray<>();
array.setName(10);
System.out.println(array.getName());
//泛型使用String
System.out.println("------------------");
DemoArray<String> array1 = new DemoArray<>();
array1.setName("张三");
System.out.println(array1.getName());
//不使用泛型 默认是Object类型
System.out.println("------------------");
DemoArray array2 = new DemoArray();
array2.setName(11);
System.out.println(array2.getName());
array2.setName("张三");
System.out.println(array2.getName());
}
运行结果:
标签:String,list,System,println,泛型,out From: https://www.cnblogs.com/shenziyi/p/16798031.html