泛型类的认识 - (了解数据结构的基础)
创始人
2024-02-22 11:05:03
0

文章目录

  • 前言
  • 1. 为什么使用泛型类?
  • 2. 泛型类介绍
  • 总结


前言

本篇通过介绍为什么使用泛型类,什么是泛型类,进一步为以后数据结构的学习打下基础。如有错误,请在评论区指正,让我们一起交流,共同进步!


本文开始

1. 为什么使用泛型类?

泛型类:通过泛型类我们可以指定我们所需要的类型,方便我们使用.

当我们想要定义一个类,类中存在一个数组,想在数组中存取任意元素,我们应该想到什么呢?

会想到Object类,它是所有类的父类,我们能根据object任意存储,但是我们获取元素,去使用该元素时又出现困难,我们存储了各种类型(double,string,int…),例如我们想要计算加减等操作,面对大量存储的元素,我们不可能记忆每个元素的类型,想要强制转换这种想法也失败了,这就是为什么我们使用泛型类。

错误思想代码演示:

class Array {public Object[] obj = new Object[3];//获取pos位置的值返回public Object getObj(int pos) {return obj[pos];}//对obj数组进行赋值public void set(int pos,Object val) {obj[pos] = val;}
}
public class Test {public static void main(String[] args) {Array array = new Array();array.set(0,1);array.set(1,"aa");array.set(2,1.0);System.out.println(array.getObj(0));System.out.println(array.getObj(1));System.out.println(array.getObj(2));System.out.println("======================");//计算是需要强制,但对于大量数据会失败,不会记忆取到的数据类型是什么,无法完成强制类型转换int ret = (Integer) array.getObj(0) + 2;System.out.println(ret);}
}

下面会写正确的泛型类代码!

2. 泛型类介绍

泛型类: 将 类型 作为参数传递给类。使之能够指定我们所需要的类型,方便我们设置参数等操作。

1.语法:类名后加<>,表示该类为泛型类;
①<>括号中存放的是我们想要使用的类型,如果想设置为String,写成 < Sting >即可;
②<>括号中可以存放一个或多个类型,可以使用大写字母E,O,P,T,K,Y等

③<>括号中必须存放引用类型,不可以是基本数据类型

//<>中1个泛型
class Array {public Object[] obj = new Object[3];  ...}//<>中多个泛型
class Array {...}

2.泛型类的特点
①能够检查我们 传递类型是否准确;例如:我们设置为< Integer >,就不能设置字符串类型,浮点数类型等
②当我们获取值时,泛型类会自动转换为我们所需要的类型,设置类型为< String >,在介绍参数时直接用String字符类型接收就可以了。

泛型类代码:

class Array {public Object[] obj = new Object[3];//获取pos位置的值返回public E getObj(int pos) {//数组是Object类型需要返回E类型需要强制转换return (E)obj[pos];}//对obj数组进行赋值public void set(int pos,E val) {obj[pos] = val;}
}public class Test {public static void main(String[] args) {//<>括号中设置为什么类型,数组中就可以设置为什么类型Array array = new Array<>();//整形array.set(0,1);array.set(1,2);System.out.println(array.getObj(0));System.out.println(array.getObj(1));System.out.println("======================");Array array2 = new Array<>();//字符串类型array2.set(0,"aa");array2.set(1,"bb");System.out.println(array2.getObj(0));System.out.println(array2.getObj(1));}
}

代码结果:

在这里插入图片描述


总结

✨✨✨各位读友,本篇分享到内容如果对你有帮助给个👍赞鼓励一下吧!!
感谢每一位一起走到这的伙伴,我们可以一起交流进步!!!一起加油吧!!!

相关内容

热门资讯

喜欢穿一身黑的男生性格(喜欢穿... 今天百科达人给各位分享喜欢穿一身黑的男生性格的知识,其中也会对喜欢穿一身黑衣服的男人人好相处吗进行解...
发春是什么意思(思春和发春是什... 本篇文章极速百科给大家谈谈发春是什么意思,以及思春和发春是什么意思对应的知识点,希望对各位有所帮助,...
网络用语zl是什么意思(zl是... 今天给各位分享网络用语zl是什么意思的知识,其中也会对zl是啥意思是什么网络用语进行解释,如果能碰巧...
为什么酷狗音乐自己唱的歌不能下... 本篇文章极速百科小编给大家谈谈为什么酷狗音乐自己唱的歌不能下载到本地?,以及为什么酷狗下载的歌曲不是...
家里可以做假山养金鱼吗(假山能... 今天百科达人给各位分享家里可以做假山养金鱼吗的知识,其中也会对假山能放鱼缸里吗进行解释,如果能碰巧解...
华为下载未安装的文件去哪找(华... 今天百科达人给各位分享华为下载未安装的文件去哪找的知识,其中也会对华为下载未安装的文件去哪找到进行解...
四分五裂是什么生肖什么动物(四... 本篇文章极速百科小编给大家谈谈四分五裂是什么生肖什么动物,以及四分五裂打一生肖是什么对应的知识点,希...
怎么往应用助手里添加应用(应用... 今天百科达人给各位分享怎么往应用助手里添加应用的知识,其中也会对应用助手怎么添加微信进行解释,如果能...
苏州离哪个飞机场近(苏州离哪个... 本篇文章极速百科小编给大家谈谈苏州离哪个飞机场近,以及苏州离哪个飞机场近点对应的知识点,希望对各位有...
客厅放八骏马摆件可以吗(家里摆... 今天给各位分享客厅放八骏马摆件可以吗的知识,其中也会对家里摆八骏马摆件好吗进行解释,如果能碰巧解决你...