数据结构(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 集合框架的工具类和数据结构。Guava 的集合工具在设计上强调性能、不可变性、功能性和易用性。 以下是 com.google.common.collect 包中一些重要的类和接口: Immutable Collections: ImmutableSet:一个不可变

    2024年03月19日
    浏览(61)
  • 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日
    浏览(41)
  • 【数据结构】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日
    浏览(31)
  • 数据结构-冒泡排序Java实现

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

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

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

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

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

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

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

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

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

    2024年02月11日
    浏览(47)
  • 数据结构(Java实现)-二叉树(下)

    获取二叉树的高度 检测值为value的元素是否存在(前序遍历) 层序遍历 判断一棵树是不是完全二叉树 获取节点的路径 二叉树的最近公共祖先

    2024年02月10日
    浏览(44)
  • 【数据结构】用Java实现哈希表

    目录 1 概念 2 冲突-概念 3 冲突-避免 4 冲突-避免-哈希函数设计 (1)直接定制法--(常用) (2)除留余数法--(常用) (3)平方取中法--(了解) (4)折叠法--(了解) (5)随机数法--(了解) (6)数学分析法--(了解) 5 冲突-避免-负载因子调节(重点掌握) 6 冲突-解决 (1)冲突-解决

    2023年04月11日
    浏览(42)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包