大家好,又见面了,我是你们的朋友全栈君。
什么是泛型?
泛型最常与集合使用,因为泛型最开始开始被加入Java就是为了解决集合向下转型一类问题的。如果我们有这样一个需求:定义一个描述类圆,要求圆中的数据类型是不确定的,也就是声名属性的时候,属性类型是不确定的。比如描述类圆中有半径,要求半径可以用int,也可以用double。那么此时数据类型不确定,就使用泛型,把数据类型参数化。
集合中泛型的使用
List中使用泛型
在我们创建集合时使用<>来声明List集合只能保存Dog类对象
List dogs=new ArrayList<>();
创建Dog类对象
Dog dog1 = new Dog(“101”,“来福”);
添加Dog对象到集合中
dogs.add(dog1);//此时dogs集合中只能存放Dog类对象
public class ListTest {
public static void main(String[] args) {
//声明List集合只能保存Dog类对象
List<Dog> dogs=new ArrayList<>();
//创建Dog对象。
Dog dog1=new Dog();
dog1.setId(111);
dog1.setName("来福");
Dog dog2=new Dog();
dog2.setId(112);
dog2.setName("来福2");
//Dog对象添加到集合
dogs.add(dog1);
dogs.add(dog2);
//获得某个元素
Dog dog = dogs.get(1);
System.out.println(dog);
//获得List集合的迭代器
Iterator<Dog> it = dogs.iterator();
while(it.hasNext()) {
Dog next = it.next();
System.out.println(next);
}
//使用高级for进行遍历
for(Dog d:dogs) {
System.out.println("--"+d);
}
}
}
Map中使用泛型
创建集合对象,key为String类型,value为Dog类类型。
Map<String,Dog> dogs=new HashMap<>();
将dog对象保存到Map集合中
dogs.put(“111”, dog1);//此时的key只能是字符串类型,value只能是Dog类型
总结:
在集合中使用泛型的目的就是为了解决向下转型的问题,在泛型具体化之后,集合只能存储与泛型具体化之后的类型。
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/151141.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...