java基础_集合泛型

nwxayyf      2022-04-09     455

关键词:


泛型

1.泛型概述
我们在集合中存储数据的时候,存储了String和Integer俩种类型的数据。而在遍历的时候,我们把它当做是String类型处理,做了转化,所以
会报错。但是呢?它在编译期间却没有告诉我们。所以我们觉得这一个设计的不好。所以集合也模仿着数组中在定义之前指明数据的类型,在
创建对象的时候明确元素的数据类型。这样就不会存在问题了。这一种技术被称为泛型。

2.泛型
是一种把类型明确的工作推迟到创建对象或者调用方法的时候才去明确的特殊类型。参数化类型,把类型当作参数传递.

3.泛型定义数据格式
<数据类型>
注意:这里面的数据类型只能够是引用类型。

4.泛型的好处
(1).把运行时期的问题提前到了编译期间
(2).避免了强制类型转换
(3).优化了程序设计,解决了异常提示


5.泛型使用举例:
public class Test {
public static void main(String[] args) {
List<String> lt=new ArrayList<String>();
lt.add("hello");
lt.add("world");
lt.add("java");
for(int i=0;i<lt.size();i++){
System.out.println(lt.get(i));
}

}
}
//输出结果
hello
world
java


6.泛型类的使用
(1).概述:
把泛型定义在类上。
public class ObjectTool<T>()//这里面的T表示的就是变了的类型,T-->type

(2).代码实现
学生类:
public class Student implements Cloneable{
//学生名字
private String name;
//年龄
private int age;

//无参
public Student(){

}

//带参构造
public Student(int age, String name) {
super();
this.age=age;
this.name=name;
}

public String getName() {
return name;
}

public void setName(String name) {
this.name = name;
}

public int getAge() {
return age;
}

public void setAge(int age) {
this.age = age;
}
}
//测试类
public class Test {
public static void main(String[] args) {
List<Student> lt=new ArrayList<Student>();
Student st=new Student(10,"张三");
Student st1=new Student(11,"李四");
Student st2=new Student(12,"王五");
lt.add(st);
lt.add(st1);
lt.add(st2);
for(int i=0;i<lt.size();i++){
System.out.println(lt.get(i).getAge()+"----"+lt.get(i).getName());
}
}
}
//输出结果:
10----张三
11----李四
12----王五


7.泛型接口
(1).所谓的泛型接口就是把泛型定义在接口上。

(2).代码实现
//定义接口
public interface Testfx<T> {
public abstract void show(T t);
}
//定义接口实现类
public class TestfxImpliment<T> implements Testfx<T> {
@Override
public void show(T t) {
// TODO Auto-generated method stub
System.out.println(t);
}
}
//测试类
public class Test {
public static void main(String[] args) {
Testfx<String> tf=new TestfxImpliment<String>();
tf.show("hello");

Testfx<Integer> tf1=new TestfxImpliment<Integer>();
tf1.show(100);
}
}

8.泛型的高级使用(通配符)
(1).通配符使用
?:任意类型,如果没有明确,那么就是Object以及任意的java类了。
?:extends E:向下限定,E以及其子类
?:super E:向上限定,E以及其父类

(2).代码实现
//动物类
public class Animal {
}
//狗类
public class Dog extends Animal{
}
//猫类
public class Cat extends Animal{
}
//测试类
public class Test {
public static void main(String[] args) {
//如果没有明确需要的是什么类型
Collection<Object> c1=new ArrayList<Object>();
Collection<?> c2=new ArrayList<Object>();
Collection<?> c3=new ArrayList<Animal>();
Collection<?> c4=new ArrayList<Dog>();
Collection<?> c5=new ArrayList<Cat>();
//? extends E:向下限定,E以及其子类
Collection<? extends Animal> c6=new ArrayList<Animal>();
Collection<? extends Animal> c7=new ArrayList<Dog>();
Collection<? extends Animal> c8=new ArrayList<Cat>();
//? super E:向上限定 ,E以及父类
Collection<? super Animal> c9=new ArrayList<Animal>();
Collection<? super Animal> c10=new ArrayList<Object>();
}
}

 


















































































































































尚硅谷_java零基础教程(泛型generics)--学习笔记(代码片段)

Java泛型一、为什么要有泛型1、为什么要有泛型(Generic)2、泛型的概念二、在集合中使用泛型三、自定义泛型结构1、自定义泛型结构1.1、泛型类、泛型接口1.2、泛型方法2、自定义泛型demo四、泛型在继承上的体现五、通配符的使用... 查看详情

javaapi_集合基础_泛型以及jdk5部分特性

泛型1.泛型的引入以及概述(1).概述:我们知道集合也是一种存储数据的工具,之前我们学习过StringBuffer和数组,这俩种在存储数据的时候都是明确了要存储什么类型的数据,如果存储的数据类型和定义要存储的数据不一致的时候... 查看详情

java示例代码_使用泛型类型强制转换集合

java示例代码_使用泛型类型强制转换集合 查看详情

java-基础(集合泛型)(代码片段)

JAVA-基础(集合泛型)1.什么是泛型?可以在类或方法中预支地使用未知的类型。2.泛型的好处?将运行时期的ClassCastException,转移到了编译时期变成了编译失败。避免了类型强转的麻烦。(集合中是可以存放任意对象的,只要把... 查看详情

java_集合与泛型

Collection集合,集合是java中提供的一种容器,可以用来存储多个数据。在前面的学习中,我们知道数据多了,可以使用数组存放或者使用ArrayList集合进行存放数据。那么,集合和数组既然都是容器,它们有啥区别呢?数组的长度... 查看详情

java示例代码_安全地从泛型类型集合转换为数组

java示例代码_安全地从泛型类型集合转换为数组 查看详情

java示例代码_将集合和泛型与通配符一起使用

java示例代码_将集合和泛型与通配符一起使用 查看详情

java示例代码_如何将元素添加到通配符泛型集合

java示例代码_如何将元素添加到通配符泛型集合 查看详情

java基础--泛型集合io反射

计划把Java基础的有些部分再次看一遍,巩固一下,下面以及以后就会分享自己再次学习的一点笔记!不是有关标题的所有知识点,只是自己觉得模糊的一些知识点。1.  对于泛型类而言,你若没有指明其类型,默认为Object;2.... 查看详情

java示例代码_动态强制转换/确保不同泛型集合的类型安全性

java示例代码_动态强制转换/确保不同泛型集合的类型安全性 查看详情

java零基础小白入门上手教程day15-泛型&file(代码片段)

day15_JAVAOOP课程目标1.【理解】什么是泛型2.【掌握】泛型的基本使用3.【理解】什么是Collections工具类4.【理解】什么是File类5.【掌握】File类的常用功能6.【掌握】打印多级目录案例7.【掌握】文件搜索案例泛型泛型概述​在前面... 查看详情

java零基础小白入门上手教程day15-泛型&file(代码片段)

day15_JAVAOOP课程目标1.【理解】什么是泛型2.【掌握】泛型的基本使用3.【理解】什么是Collections工具类4.【理解】什么是File类5.【掌握】File类的常用功能6.【掌握】打印多级目录案例7.【掌握】文件搜索案例泛型泛型概述​在前面... 查看详情

java_集合之二

1.泛型1.1泛型概述【理解】泛型的介绍泛型是JDK5中引入的特性,它提供了编译时类型安全检测机制泛型的好处把运行时期的问题提前到了编译期间避免了强制类型转换泛型的定义格式<类型>:指定一种类型的格式.尖括号里面... 查看详情

java基础--常用api--集合类相关api(代码片段)

一、泛型  1、泛型的本质是将类型参数化,即将数据类型作为参数。   2、泛型可以在编译期进行检查,其所有的强制转换是隐式且自动的,提高了代码的安全性。    3、泛型可以用在类(泛型类)、接口(泛型接口... 查看详情

java基础

(一)泛型(1)数组直接定义了存储的类型,防止出现其他类型的元素,集合能不能也像数组一样,直接规定我们集合的存储类型,针对这种情况一种技术:泛型<数据类型>---引用数据类型泛型:将明确的集合类型的工作推迟到了创... 查看详情

《java架构筑基》从java基础讲起——泛型基础

一.泛型的概述1.1泛型由来我们的集合可以存储多种数据类型的元素,那么在存储的时候没有任何问题,但是在获取元素,并向下转型的时候,可能会存在一个错误,而这个错误就是ClassCastException.很显然,集合的这种可以存储多种数据类... 查看详情

java_泛型笔记(代码片段)

...法Java_泛型在继承上的体现Java_通配符的使用Java_泛型简介集合容器类在设计阶段/声明阶段不能确定这个容器到底实际存的是什么类型的对象在JDK1.5之前只能把元素类型设计为Object,JDK1.5之后使用泛 查看详情

java基础第十二篇之集合增强for循环迭代器和泛型

Collection接口中的常用方法:* 所有的子类子接口都是具有的*集合的方法:增删改查** publicbooleanadd(Ee);//添加元素返回值表示是否添加成功* publicbooleanremove(Objecto);//删除元素,返回值表示是否删除成功* 没有修改方法* 查询元素的... 查看详情