java-----泛型(代码片段)

小鹿可可乐 小鹿可可乐     2022-12-16     782

关键词:

1.泛型前言

泛型的本质是参数化类型,
参数化类型:所操作的数据类型被指定为一个参数,将类型由原来的具体的类型参数化

//泛型中:T\\E\\K\\V
import java.util.Arrays;
//可存在多个泛型类型<T,E,..>
public class MyArrayList<T> 
    private T[] element;
    private int size;
    public MyArrayList()
        this(10);//this();  只能在构造函数之间调用 (位于当前有效代码第一行)
    
    public MyArrayList(int num)
        element = (T[])new Object[num];
    

    /*
    行为
     */
    public void addTail(T value)
        if(size == element.length)
            element = Arrays.copyOf(element,element.length*2);
        
        element[size++] = value;
    
    public void show()
        for (int i = 0; i < size; i++) 
            System.out.print(element[i]);
        
    


public class TestDemo 
    public static void main(String[] args) 
        MyArrayList<String> myString = new MyArrayList<>();
        myString.addTail("String");

        MyArrayList<Integer> my = new MyArrayList<>();
        my.addTail(10);
        my.addTail(20);//1.任何引用类型都可以操作MyArrayList 2.通过泛型参数保证了所操作的数据类型相同
        //MyArrayList my = new MyArrayList();
        //MyArrayList<Object> my = new MyArrayList<>();
    

1、泛型类: class 类名<泛型参数>
2、泛型参数只作用于编译期间,运行->类型擦除(T变成Object)

  • 类型安全检测
  • 类型推导
    3、泛型注意点:
  • 泛型参数只能是引用数据类型,不能是基本数据类型
  • 不能直接new泛型数组
  • 不能直接new泛型对象 new T()
  • 对类型进行自动检查
  • 自动对类型类型推导

2.泛型接口

使用:

3.泛型方法

返回值前面加上泛型参数
例:swap()

针对任何数据类型都可以交换

冒泡排序泛型实现:

冒泡放在ArrayList中(类型擦除Object

import java.util.Arrays;
//可存在多个泛型类型<T,E,..>
public class MyArrayList<T extends Comparable<T>> 
    private T[] element;
    private int size;
    public MyArrayList()
        this(10);//this();  只能在构造函数之间调用 (位于当前有效代码第一行)
    
    public MyArrayList(int num)
        element = (T[])new Comparable[num];
    

    /*
    行为
     */
    public void addTail(T value)
        if(size == element.length)
            element = Arrays.copyOf(element,element.length*2);
        
        element[size++] = value;
    
    public void bubbleSort()
        for(int i = 0;i<element.length;i++)
            for (int j = 0; j < element.length-1-i; j++) 
                if(element[j].compareTo(element[j+1])>0)
                    TestDemo.swap(element,j,j+1);
                
            
        
    

extends主要限定泛型参数的上界(常见如下):

  • <T extends 基类>://只能是基类或者基类的派生类
  • <T extends 基接口>//只能是实现基接口的派生类

今天也要好好学习呀~

java泛型(代码片段)

查看详情

java泛型介绍(代码片段)

查看详情

java_泛型笔记(代码片段)

文章目录Java_泛型简介Java_泛型的概念Java_为什么存在泛型Java_自定义泛型结构Java_泛型的声明Java_泛型的实例化Java_泛型类Java_泛型方法Java_泛型在继承上的体现Java_通配符的使用Java_泛型简介集合容器类在设计阶段/声明阶段不能确... 查看详情

java泛型(代码片段)

文章目录前言一、泛型1.泛型的好处2.泛型的本质3.泛型类4.泛型接口5.泛型方法5.限定类型变量6.泛型的约束和局限性7.通配符类型总结前言提示:以下是本篇文章正文内容,下面案例可供参考一、泛型1.泛型的好处1.适用于... 查看详情

java泛型(代码片段)

Java泛型技术产生的原因:packagecn.mldn.utli;classPointprivateObjectx;privateObjecty;publicvoidsetX(Objectx)this.x=x;publicvoidsetY(Objecty)this.y=y;publicObjectgetX()returnx;publicObjectgetY()returny; 查看详情

java泛型(代码片段)

泛型01:packageCharTest;importjava.util.ArrayList;@SuppressWarnings("all")publicclassGeneric02publicstaticvoidmain(String[]args)ArrayList<Dog>arrayList=newArrayList<Dog>();a 查看详情

java泛型是什么?一文带你吃透泛型(代码片段)

文章目录1.Java泛型2.泛型类3.泛型接口4.泛型方法5.泛型集合Java编程基础教程系列1.Java泛型Java泛型是JDK1.5中引入的一个新特性,其本质是参数化类型,把类型作为参数传递。其主要的形式有泛型类,泛型接口和泛型方法。泛型概... 查看详情

java-泛型-3(代码片段)

泛型类publicclassTest<TextendsNumber>privateTkey;publicTest(Tkey)this.key=key;publicTgetKey()returnkey;publicvoidsetKey(Tkey)this.key=key;泛型接口publicinterfaceGenerator<T>publi 查看详情

java-----泛型(代码片段)

泛型1.泛型前言2.泛型接口3.泛型方法1.泛型前言泛型的本质是参数化类型,参数化类型:所操作的数据类型被指定为一个参数,将类型由原来的具体的类型参数化//泛型中:T\\E\\K\\Vimportjava.util.Arrays;//可存在多个泛... 查看详情

java-泛型-3(代码片段)

泛型类publicclassTest<TextendsNumber>privateTkey;publicTest(Tkey)this.key=key;publicTgetKey()returnkey;publicvoidsetKey(Tkey)this.key=key;泛型接口publicinterfaceGenerator<T>publicTfun();泛 查看详情

java基础总结三(泛型异常)(代码片段)

文章目录Java基础总结三(泛型、异常)泛型泛型的创建泛型类泛型接口泛型方法类型擦除泛型的协变与逆变异常异常体系异常处理Java基础总结三(泛型、异常)泛型泛型的创建泛型类我们最常用泛型的地方就是... 查看详情

java泛型(代码片段)

E-Element(在集合中使用,因为集合中存放的是元素)示例:publicclass泛型Epublicstaticvoidmain(String[]args)Integer[]stringArray=1,2,3,4,5,6,7;printArray(stringArray);/****/publicstatic<E>voidprintArray(E[]inputArray)/ 查看详情

java--泛型--泛型接口&泛型方法(代码片段)

泛型接口  packagecom.model.fanxing;/***@Description:测试类*@Author:张紫韩*@Crete2021/6/3022:14*泛型接口和实现类*1.泛型接口的实现类,是一个泛型类,那么要保证实现接口的泛型类的反省表示中要包含泛型接口的泛型标识*2.泛型接口... 查看详情

java--泛型复习(代码片段)

泛型复习泛型的生命周期泛型类泛型接口泛型方法关于泛型方法的总结泛型通配符有限制的通配符泛型的生命周期Java中的泛型,只在编译阶段有效,在编译过程中,正确检验泛型结果后,会将泛型的相关信息擦除... 查看详情

java泛型概述与应用(代码片段)

文章目录泛型1.1泛型概述1.2泛型类1.2.1示例代码1.3泛型方法1.3.1示例代码1.4泛型接口1.4.1示例代码1.5类型通配符1.5.1类型通配符:<?>1.5.2类型通配符上限:<?extends类型>1.5.3类型通配符下限:<?super类型>1.5.4泛型通配符的使用... 查看详情

java泛型总结(代码片段)

一:什么是泛型?泛型,即“参数化类型”。一提到参数,最熟悉的就是定义方法时有形参,然后调用此方法时传递实参。那么参数化类型怎么理解呢?顾名思义,就是将类型由原来的具体的类型参数化,类似于方法中的... 查看详情

java重点--泛型(代码片段)

文章目录💖泛型的概念✨使用泛型的好处与弊端✨定义和使用含有泛型的类✨定义和使用含有泛型的方法✨定义和使用含有泛型的接口✨泛型的通配符✨通配符的高级使用--受限泛型✨斗地主小案例💖泛型的概念泛型是... 查看详情

java-泛型-2(代码片段)

什么是泛型泛型是在jdk1.5后引入的一种特性,用于规定限制一种类型的。例如List,publicvoidTgetMethod()这种就是泛型适用范围适用于规定返回值类型,参数类型,不确定继承类型等常常用于抽象封装类,例如常用CRUD封... 查看详情