数据结构(Java实现)-包装类和泛型

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


包装类
在Java中,由于基本类型不是继承自Object,为了在泛型代码中可以支持基本类型,Java给每个基本类型都对应了
一个包装类型。


基本数据类型和对应的包装类
数据结构(Java实现)-包装类和泛型,数据结构(Java实现),数据结构,java,开发语言


装箱和拆箱
装箱操作,新建一个 Integer 类型对象,将 i 的值放入对象的某个属性中
数据结构(Java实现)-包装类和泛型,数据结构(Java实现),数据结构,java,开发语言
拆箱操作,将 Integer 对象中的值取出,放到一个基本数据类型中
数据结构(Java实现)-包装类和泛型,数据结构(Java实现),数据结构,java,开发语言


数据结构(Java实现)-包装类和泛型,数据结构(Java实现),数据结构,java,开发语言
数据结构(Java实现)-包装类和泛型,数据结构(Java实现),数据结构,java,开发语言


什么是泛型
泛型:就是适用于许多许多类型。从代码上讲,就是对类型实现了参数化。
所有类的父类,默认为Object类。
泛型的主要目的:就是指定当前的容器,要持有什么类型的对象。让编译器去做检查。此时,就需要把类型,作为参数传递。需要什么类型,就传入什么类型。


语法
class 泛型类名称<类型形参列表> {
// 这里可以使用类型参数
}
class ClassName<T1, T2, …, Tn> {
}

一个泛型的简单示例
数据结构(Java实现)-包装类和泛型,数据结构(Java实现),数据结构,java,开发语言
数据结构(Java实现)-包装类和泛型,数据结构(Java实现),数据结构,java,开发语言
想要传递String类,需要如下操作
数据结构(Java实现)-包装类和泛型,数据结构(Java实现),数据结构,java,开发语言


数据结构(Java实现)-包装类和泛型,数据结构(Java实现),数据结构,java,开发语言
数据结构(Java实现)-包装类和泛型,数据结构(Java实现),数据结构,java,开发语言


注意事项
类名后的 代表占位符,表示当前类是一个泛型类
不能new泛型类型的数组,因为不知道T是什么类型
数据结构(Java实现)-包装类和泛型,数据结构(Java实现),数据结构,java,开发语言


泛型如何编译的
擦除机制
在编译的过程当中,将所有的T替换为Object这种机制,我们称为:擦除机制。
Java的泛型机制是在编译级别实现的。编译器生成的字节码在运行期间并不包含泛型的类型信息。


为什么不能实例化泛型类型数组
数据结构(Java实现)-包装类和泛型,数据结构(Java实现),数据结构,java,开发语言
上述,返回的Object数组里面,可能存放的是任何的数据类型,可能是String,可能是Person,运行的时候,直接转给Integer类型的数组,编译器认为是不安全的。

泛型一种比较规范的写法
数据结构(Java实现)-包装类和泛型,数据结构(Java实现),数据结构,java,开发语言


泛型的上界
在定义泛型类时,有时需要对传入的类型变量做一定的约束,可以通过类型边界来约束
数据结构(Java实现)-包装类和泛型,数据结构(Java实现),数据结构,java,开发语言
可以做如下修改
数据结构(Java实现)-包装类和泛型,数据结构(Java实现),数据结构,java,开发语言
数据结构(Java实现)-包装类和泛型,数据结构(Java实现),数据结构,java,开发语言
上述就是泛型方法的实现


public class MyArray {

}
只接受 Number 的子类型作为 E 的类型实参
数据结构(Java实现)-包装类和泛型,数据结构(Java实现),数据结构,java,开发语言


泛型静态方法的实现
数据结构(Java实现)-包装类和泛型,数据结构(Java实现),数据结构,java,开发语言文章来源地址https://www.toymoban.com/news/detail-678018.html


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

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

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

相关文章

  • com.google.common.collect 是 Google Guava 库中的一个包,它提供了一系列扩展和增强 Java 集合框架的工具类和数据结构

    com.google.common.collect 是 Google Guava 库中的一个包,它提供了一系列扩展和增强 Java 集合框架的工具类和数据结构

    com.google.common.collect 是 Google Guava 库中的一个包,它提供了一系列扩展和增强 Java 集合框架的工具类和数据结构。Guava 的集合工具在设计上强调性能、不可变性、功能性和易用性。 以下是 com.google.common.collect 包中一些重要的类和接口: Immutable Collections: ImmutableSet:一个不可变

    2024年03月19日
    浏览(15)
  • Java 包装类和Arrays类(详细解释)

    Java 包装类和Arrays类(详细解释)

    目录 包装类 作用介绍 包装类的特有功能 Arrays类 Arrays.fill()  Arrays.toString()  Arrays.sort() 升序排序 降序排序 Arrays.equals() Arrays.copyOf() Arrays.binarySearch() 包装类其实就是8种基本数据类型对应的引用类型。 基本数据类型 引用数据类型 byte Byte short Short int Integer long Long char Character

    2024年02月10日
    浏览(10)
  • 【数据结构】Java实现栈

    【数据结构】Java实现栈

    目录 1. 概念 2. 栈的使用  3. 自己动手实现栈(使用动态数组实现栈)  1. 创建一个MyStack类 2. push入栈 3. pop出栈 4. 查看栈顶元素 5. 判断栈是否为空与获取栈长 6. toString方法 4. 整体实现 4.1 MyStack类 4.2 Test类 4.3 测试结果 栈 :一种特殊的线性表,其 只允许在固定的一端进行插

    2024年02月16日
    浏览(9)
  • 数据结构-冒泡排序Java实现

        冒泡排序是一种基础的比较排序算法,它的思想很简单:重复地遍历待排序的元素列表,比较相邻元素,如果它们的顺序不正确,则交换它们。这个过程不断重复,直到整个数组都排序好。冒泡排序的时间复杂度为O(n^2),因此不适用于大规模数据集,但对于小型数据集

    2024年02月08日
    浏览(10)
  • 数据结构——用Java实现数组

    数据结构是一门基础的学科,是研究数据如何在计算机中进行组织和存储,使得我们可以高效的获取数据和修改数据的。 1.线性结构:数组、队列、栈、链表、哈希表… 2.树形结构:二叉树、二分搜索树、AVL树,红黑树、堆、Trie、线段树、并查集… 3.图结构:邻接矩阵、邻接

    2024年01月18日
    浏览(12)
  • 数据结构Java实现03--栈

    栈Stack是一种遵循先入后出(First In, Last Out)原则的线性数据结构。 可以将栈类比为手枪的弹匣,压入子弹(填入数据)时从最底部开始压入,击发子弹(取出数据)时,从最上方开始。 在栈中,我们把堆叠元素的顶部称为栈顶,底部称为栈底。将把元素添加到栈顶的操作叫

    2024年02月12日
    浏览(8)
  • Java实现数据结构哈希表

    Java实现数据结构哈希表

    概述 给美分数据分配一个编号,放入表格(数组) 建立编号与表格索引的关系,将来就可以通过编号快速查找数据 理想情况编号当唯一,数组能容纳所有数据 现实是不能说为了容纳所有数据造一个超大数组,编号也可能重复 解决 有限长度的数组,以[拉链]方式存储数据 允许编号适当

    2024年02月21日
    浏览(10)
  • 数据结构(Java实现)-栈和队列

    数据结构(Java实现)-栈和队列

    栈:一种特殊的线性表,其只允许在固定的一端进行插入和删除元素操作。 先进后出 栈的使用 栈的模拟实现 上述的主要代码 改变元素的序列 将递归转化为循环 比如:逆序打印链表 结果如下 队列:只允许在一端进行插入数据操作,在另一端进行删除数据操作的特殊线性表

    2024年02月10日
    浏览(14)
  • 数据结构(Java实现)-二叉树(上)

    数据结构(Java实现)-二叉树(上)

    树型结构 树是一种非线性的数据结构,它是由n(n=0)个有限结点组成一个具有层次关系的集合。把它叫做树是因为它看起来像一棵倒挂的树,也就是说它是根朝上,而叶朝下的。 有一个特殊的结点,称为根结点,根结点没有前驱结点 除根结点外,其余结点被分成M(M 0)个互不

    2024年02月11日
    浏览(8)
  • 【Java--数据结构】模拟实现ArrayList

    【Java--数据结构】模拟实现ArrayList

    欢迎关注个人主页:逸狼 创造不易,可以点点赞吗~ 如有错误,欢迎指出~ 目录 LIst 顺序表ArrayList 顺序表优点 IList接口 ArrayList中定义要操作的数组 在MyArrayList中 重写接口方法 新增元素 在指定位置插入元素  pos不合法异常 判断和查找元素 获取和更新元素 删除元素和清空顺序

    2024年04月25日
    浏览(16)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包