【数据结构】泛型(分享重点)

这篇具有很好参考价值的文章主要介绍了【数据结构】泛型(分享重点)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

什么是泛型?

泛型就是适用于许多许多类型,对类型参数化。

怎么创建一个泛型呢

class 泛型类名称<类型形参列表> {
// 这里可以使用类型参数
}
class ClassName<T1, T2, ..., Tn> {
}
class 泛型类名称<类型形参列表> extends 继承类/* 这里可以使用类型参数 */ {
// 这里可以使用类型参数
}
class ClassName<T1, T2, ..., Tn> extends ParentClass<T1> {
// 可以只使用部分类型参数
}

下面我们看两段代码的对比

class MyArray {
public Object[] array = new Object[10];
public Object getPos(int pos) {
return this.array[pos];
}
public void setVal(int pos,Object val) {
this.array[pos] = val;
}
}
public class TestDemo {
public static void main(String[] args) {
MyArray myArray = new MyArray();
myArray.setVal(0,10);
myArray.setVal(1,"hello");//字符串也可以存放
String ret = myArray.getPos(1);//编译报错
System.out.println(ret);
}
}

用泛型改写

class MyArray<T> {
public T[] array = (T[])new Object[10];//1
public T getPos(int pos) {
return this.array[pos];
}
public void setVal(int pos,T val) {
this.array[pos] = val;
}
}
public class TestDemo {
public static void main(String[] args) {
MyArray<Integer> myArray = new MyArray<>();//2
myArray.setVal(0,10);
myArray.setVal(1,12);
int ret = myArray.getPos(1);//3
System.out.println(ret);
myArray.setVal(2,"bit");//4
}
}
类名后的 <T> 代表占位符,表示当前类是一个泛型类
【数据结构】泛型(分享重点),数据结构,前端,javascript
泛型类的使用
泛型类<类型实参> 变量名; // 定义一个泛型类引用
new 泛型类<类型实参>(构造方法实参); // 实例化一个泛型类对象

示例

MyArray<Integer> list = new MyArray<Integer>();

泛型只能接受类

泛型方法

方法限定符 <类型形参列表> 返回值类型 方法名称(形参列表) { ... }
public class Util {
//静态的泛型方法 需要在static后用<>声明泛型类型参数
public static <E> void swap(E[] array, int i, int j) {
E t = array[i];
array[i] = array[j];
array[j] = t;
}
}

通配符文章来源地址https://www.toymoban.com/news/detail-852054.html

? 用于在泛型的使用,即为通配符
例如, List<?> 表示一个可以容纳任何类型元素的列表。
public class TestDemo {
public static void main(String[] args) {
Message<Integer> message = new Message() ;
message.setMessage(55);
fun(message);
}
// 此时使用通配符"?"描述的是它可以接收任意类型,但是由于不确定类型,所以无法修改
public static void fun(Message<?> temp){
//temp.setMessage(100); 无法修改!
System.out.println(temp.getMessage());
}
}

到了这里,关于【数据结构】泛型(分享重点)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • day32 泛型 数据结构 List

     概述         JDK1.5同时推出了两个和集合相关的特性:增强for循环,泛型         泛型可以修饰泛型类中的属性,方法返回值,方法参数, 构造函数的参数 Java提供的泛型类/接口 Collection, List, Set,Iterator 等 自定义的泛型 public class Student H,W {} 自定义的泛型方法 public

    2024年02月09日
    浏览(42)
  • TCP数据报结构分析(面试重点)

    在传输层中有UDP和TCP两个重要的协议,下面将针对TCP数据报的结构进行分析 关于UDP数据报的结构分析推荐看UDP数据报结构分析(面试重点)         源端口表示发送数据时,发送方的端口号,由于占16位2个字节,所以取值范围是0-65535,所以一个合法的端口号,有效范围就是

    2024年02月10日
    浏览(38)
  • UDP数据报结构分析(面试重点)

            在传输层中有UDP和TCP两个重要的协议,下面将针对UDP数据报的结构进行分析         UDP报头有4个属性,分别是源端口,目的端口,UDP报文长度,校验和,它们都占16位2个字节,所以取值范围是0-65535                 源端口表示发送数据时,发送方的端口号,由于占

    2024年02月12日
    浏览(36)
  • 【数据结构】 简单认识包装类与泛型

    在Java中,由于基本类型不是继承自Object,为了在 泛型代码 中可以支持基本类型,Java给每个基本类型都对应了一个包装类型。 除了 Integer 和 Character, 其余基本类型的包装类都是首字母大写。 装箱就是自动将基本数据类型转换为包装器类型;拆箱就是自动将包装器类型转换

    2024年02月12日
    浏览(47)
  • 数据结构(Java实现)-包装类和泛型

    包装类 在Java中,由于基本类型不是继承自Object,为了在泛型代码中可以支持基本类型,Java给每个基本类型都对应了 一个包装类型。 基本数据类型和对应的包装类 装箱和拆箱 装箱操作,新建一个 Integer 类型对象,将 i 的值放入对象的某个属性中 拆箱操作,将 Integer 对象中

    2024年02月11日
    浏览(40)
  • 【java数据结构】泛型的初步认识(2)

    hellohello~,大家好💕💕,这里是E绵绵呀✋✋ ,如果觉得这篇文章还不错的话还请点赞❤️❤️收藏💞 💞 关注💥💥,如果发现这篇文章有问题的话,欢迎各位评论留言指正,大家一起加油!一起chin up!👍👍  💥 个人主页: E绵绵的博客 💥 所属专栏: JAVA知识点专栏

    2024年04月26日
    浏览(36)
  • 【数据结构】第 1~10 章:思维导图与重点汇总

    目录 一、概论 (1)思维导图  (2)常见名词 (3)数据结构的定义  (4)抽象数据类型 ADT  (5)算法  (6)评价算法的好坏的因素  (7)算法复杂度 二、线性表  (1)思维导图  (2)线性表  (3)线性表上定义的基本运算  (4)顺序表 (5)在顺序表中实现的基本运

    2024年02月03日
    浏览(38)
  • 探索泛型与数据结构:解锁高效编程之道

    在当今信息爆炸的时代,数据结构和算法成为了程序员必备的核心技能。而泛型作为Java语言中的一项强大特性,为数据结构和算法的实现提供了更高效、更安全的方式。本文将深入探讨泛型的概念、使用场景以及结合数据结构的应用,为您打开高效编程之道。 1.1 为什么使用

    2024年02月13日
    浏览(45)
  • 数据结构----基本封装、包装类、装箱与拆箱、泛型详解

    在Java中,由于基本类型不是继承自Object,为了在泛型代码中可以支持基本类型,Java给每个基本类型都对应了一个包装类型。 基本数据类型 包装类 byte Byte short Short int Integer long Long float Float double Double char Character boolean Boolean 除了 Integer 和 Character, 其余基本类型的包装类都是

    2024年01月23日
    浏览(44)
  • C#学习笔记--数据结构、泛型、委托事件等进阶知识点

    ArrayList 元素类型以Object类型存储,支持增删查改的数组容器。 因而存在装箱拆箱操作,谨慎使用。 ArrayList和数组区别? ArrayList使用不用说明固定长度,数组则需要 数组存储的是指定类型的,ArrayList是Object ArrayList存在装箱拆箱,数组不存在 ArrayList数组长度用Count获取 而数组

    2024年02月08日
    浏览(49)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包