首页 > 其他分享 >泛型引入

泛型引入

时间:2022-10-28 17:47:07浏览次数:43  
标签:ArrayList al 引入 add 类型 泛型 集合

【1】什么是泛型(Generic):

泛型就相当于标签

形式:<>

集合容器类在设计阶段/声明阶段不能确定这个容器到底实际存的是什么类型的对象,所以在JDK1.5之前只能把数据类型设计为Object,

JDK1.5之后使用泛型来解决。因为这个时候除了元素的类型不确定,其它部分是确定的,例如关于这个元素如何保存,如何管理等是确定的,

因此此时把元素的类型设计成一个参数,这个类型参数叫做泛型。

 Collection<E> ,Iterable<E> 这个<E>就是类型参数,即泛型。

【2】没有泛型的时候使用集合:



package com.msb.test01;

import java.util.ArrayList;

/**
 * @author : liu
 * 日期:17:16:00
 * 描述:IntelliJ IDEA
 * 版本:1.0
 */
public class Test01 {
    //这是一个main方法:是程序的入口
    public static void main(String[] args) {
        //创建一个ArrayList集合,像这个集合存入学生的成绩:
        ArrayList al = new ArrayList();
        al.add(98);
        al.add(18);
        al.add(39);
        al.add(60);
        al.add(83);
        al.add("丽丽");
        //对集合遍历查看
        for (Object o:al
             ) {
            System.out.println(o);
        }
    }
}

 

如果不使用泛型的话,有缺点:
一般我们在使用的时候基本上往集合中存入的都是相同数据类型的数据---》便于管理,所以现在什么引用数据类型都可以存入集合,不方便;

【3】JDK1.5之后集合中使用泛型

package com.msb.test01;

import java.util.ArrayList;

/**
 * @author : liu
 * 日期:17:16:00
 * 描述:IntelliJ IDEA
 * 版本:1.0
 */
public class Test01 {
    //这是一个main方法:是程序的入口
    public static void main(String[] args) {
        //创建一个ArrayList集合,像这个集合存入学生的成绩:
        //加入泛型的优点:在编译的时候就会对类型进行检查,不是泛型对应的类型就不可以加入这个集合。
        ArrayList<Integer> al = new ArrayList<Integer>();
        al.add(98);
        al.add(18);
        al.add(39);
        al.add(60);
        al.add(83);
        /*al.add("丽丽");
        al.add(9.8);*/
        //对集合遍历查看
        /*for (Object o:al
             ) {
            System.out.println(o);
        }*/
        for (Integer i:al
             ) {
            System.out.println(i);
        }
    }
}

【4】泛型总结:

(1)JDK1.5以后

(2)泛型实际就是一个<>引起来的参数类型,这个参数类型具体在使用的时候才会确定的具体的类型

 

(3)使用了泛型以后就可以确定集合中存放数据类型,在编译期的时期就可以检查出来。

(4)使用泛型你可能觉德很麻烦,实际使用了泛型才会简单,后续的遍历等操作简单。

(5)泛型对应的类型都是引用数据类型,不能是基本数据类型

(6)

ArrayList<Integer> al = new ArrayList<Integer>();

JDK1.7以后可以写为

ArrayList<Integer> al = new ArrayList();
---<>---钻石运算符

 

标签:ArrayList,al,引入,add,类型,泛型,集合
From: https://www.cnblogs.com/jeldp/p/16836885.html

相关文章

  • CSS核心基础 (样式规则,引入CSS样式表;基础选择器)
    一.CSS样式规则选择器{属性1:属性值1;属性2:属性值2;属性3:属性值3;}属性与属性值以“键值对”的形式出现,属性是对通过选择器所指定的对象设置的样式属性(字体,大小,颜色等)。CSS......
  • C#新语法进阶委托泛型LinqLambda表达式
    学习C#开发的程序员们,相信大家也有自己的困惑。C#对于我们来说,一会很熟悉,一会很陌生,当你熟悉的时候,你阅读源码能一目十行,当你很陌生的时候,你十天能看懂一行代码。我们总是伴......
  • C#泛型约束,多线程
    定义泛型类时,可以对客户端代码能够在实例化类时用于类型参数的几种类型施加限制。如果客户端代码尝试使用约束所不允许的类型来实例化类,则会产生编译时错误。这些限制称......
  • 没有引入若依框架时如何重置表单
    reset(){this.form={files:undefined,department:undefined,organization:undefined,companyContact:undefined,......
  • Java8 新特性02-方法引入
    文章目录​​方法引入​​​​什么是方法​​​​方法引用​​​​MayiktService​​​​MessageInterface​​​​MessageInterface2​​​​MessageInterface3​​​​静......
  • 泛型
    泛型(Generics)是JDK5中引入的特性。使用泛型参数,可以增加代码的可读性以及稳定性编译器可以对泛型参数进行检测,并且通过泛型参数可以指定传入的对象类型。比如ArrayList<P......
  • 泛型列表转ToDataTable
    ///<summary>///列表转换DataTable助手///</summary>publicstaticclassListToDatatableHelper{///<summary>///将泛型实......
  • Spring Boot实战:Spring Boot使用AOP的正确姿势 Spring AOP术语 通知 连接点 切点 切面
    SpringBoot实战:SpringBoot使用AOP的正确姿势SpringAOP术语通知连接点切点切面引入织入一、为什么需要面向切面编程?面向对象编程(OOP)的好处是显而易见的,缺点也同......
  • react实战笔记138:引入RTK数据
    redux常规数据的操作存在的问题 redux的工具包简化操作的......
  • TypeReference 获取泛型属性
    当一个对象含有的属性有泛型时,反序列化该对象可以尝试使用TypeReference.例如:@DatapublicclassRedisData<T>{privateLocalDateTimeexpireTime;priva......