【装包拆包----泛型】

news2024/11/14 12:12:25

文章目录

  • 装箱和拆箱
  • 泛型
  • 创建一个泛型数组
  • 泛型的上界
  • 泛型方法


装箱和拆箱

装箱:
把基本数据类型给到引用数据类型

    public static void main(String[] args) {
        //自动装包
        //第一种装包
        Integer c = 12;
        //第二种装包
        int a = 7;
        Integer b = a;

        //显示装包
        Integer aa = Integer.valueOf(10);
    }

拆箱:
把包装类型给到基本引用数据类型

    public static void main(String[] args) {
        //自动拆包
        Integer a = 10;
        int b = a;

        //显示拆包
        int aa = a.intValue();
    }

泛型

含义:泛型:就是适用于许多许多类型。
语法:
在这里插入图片描述
泛型只能接受包装类

创建一个泛型数组

实现一个类,类中包含一个数组成员,使得数组中可以存放任何类型的数据,也可以根据成员方法返回数组中某个下标的值

//类名后的 <T> 代表占位符,表示当前类是一个泛型类
class MyArray<T>{
    //泛型数组
    public Object[] array =new Object[10];

    public void setArray(int pos,T val) {
       array[pos] = val;
    }
    public T getArray(int pos){
        return (T)array[pos];
    }
}
public class Test {
    public static void main(String[] args) {
    //类型后加入 <Integer> 指定当前类型
        MyArray <Integer> myArray = new <Integer>MyArray();
        myArray.setArray(0,7);
        myArray.setArray(1,10);
        int a = myArray.getArray(1);
        System.out.println(a);

        MyArray <String> myArray1 = new <String>MyArray();
        myArray1.setArray(0,"jiujiu");
        myArray1.setArray(1,"happy");
        String str = myArray1.getArray(1);
        System.out.println(str);

    }
}

注意:
1.不能new一个泛型类型的数组

泛型的上界

//T只能是Number或者Numberd的子类
class FanXing<T extends Number>{

}
class Person{
//父类
}
class Student extends Person{
    //子类
}

//T只能是Person或者Person的子类
class FanXing2<T extends Person>{


}
public class Test {
    FanXing <Integer> fanXing = new <Integer> FanXing();
    FanXing <Double> fanXing2 = new <Integer> FanXing();
    
    //报错
    FanXing <String> fanXing3 = new <Integer> FanXing();
    //String不是Numberd的子类


    FanXing2 <Student> fanXing4 = new <Student> FanXing2();
    FanXing2 <Person> fanXing5 = new <Person> FanXing2();


}

泛型方法

class Person implements Comparable<Person>{
    @Override
    public int compareTo(Person o) {
        return 0;
    }
}


class Alg<T extends  Comparable<T>>{

    public T findMaxValue(T[] array){
        T max = array[0];
        for (int i = 0; i < array.length; i++) {
            if (max.compareTo(array[i])<0){
                max = array[i];
            }
        }
        return max;
    }

}

//泛型方法
class Alg2{
    public<T extends  Comparable<T>>T findMaxValue(T[] array){
        T max = array[0];
        for (int i = 0; i < array.length; i++) {
            if (max.compareTo(array[i])<0){
                max = array[i];
            }
        }
        return max;
    }

}
public class Test {
    public static void main(String[] args) {
        Alg<Integer> alg = new Alg<Integer>();
        Integer[] integer={1,2,3,4,5,6,7};
        Integer ret = alg.findMaxValue(integer);
        System.out.println(ret);

         //泛型方法实例化
        Alg2 alg2 =new Alg2();
        Integer[] integer1 = {1,2,3,4,5,6,7,8};
        Integer ret2 = alg2.findMaxValue(integer1);
        System.out.println(ret2);
        
    }
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1212723.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

什么是自动化测试框架?

无论是在自动化测试实践&#xff0c;还是日常交流中&#xff0c;经常听到一个词&#xff1a;框架。之前学习自动化测试的过程中&#xff0c;一直对“框架”这个词知其然不知其所以然。 最近看了很多自动化相关的资料&#xff0c;加上自己的一些实践&#xff0c;算是对“框架”…

应用协议安全:Rsync-common 未授权访问.

应用协议安全&#xff1a;Rsync-common 未授权访问. Rsync 是 Linux 下一款数据备份工具&#xff0c;支持通过 rsync 协议、ssh 协议进行远程文件传输。其中 rsync 协议默认监听 873 端口&#xff0c;如果目标开启了 rsync 服务&#xff0c;并且没有配置 ACL 或访问密码&#…

Node.js 安装配置

文章目录 安装检测Node是否可用 安装 首先我们需要从官网下载Node安装包:Node.Js中文网,下载后双击安装没有什么特殊的地方&#xff0c;安装路径默认是C盘&#xff0c;不想安装C盘的话可以选择一下其他的盘符。安装完成以后可以不用配置环境变量&#xff0c;Node安装已经自动给…

【算法总结】归并排序专题(刷题有感)

思考 一定要注意归并排序的含义&#xff0c;思考归并的意义。 主要分为两个步骤&#xff1a; 拆分 每次对半分(mid l r >> 1)输入&#xff1a;raw整块&#xff0c;输出&#xff1a;raw左块 raw右块 合并 每次都要对raw左块、 raw右块按照某种规则进行合并输入&#xf…

计算机基础知识53

模板之过滤器 # HTML被直接硬编码在 Python代码之中&#xff0c;Django的 模板系统(Template System) # 过滤器给我们提供的有六十多个&#xff0c;但是我们只需要掌握10个以内即可 过滤器名称就是函数名 # 语法&#xff1a;{{ obj|filter__name:param }} 变量名字…

多个Obj模型合并

MergeObj&#xff08;合并Obj模型&#xff09; 1 概述 由于项目原因&#xff0c;需要下载谷歌地图上的模型&#xff0c;关于谷歌模型下载的&#xff0c;见我的CSDN博客. 由于下载谷歌地图上的数据&#xff0c;会分多个模块下载。下载完成后&#xff0c;怎么合并&#xff0c;在…

电脑检测温度软件有哪些?

环境&#xff1a; Win10 专业版 问题描述&#xff1a; 电脑检测温度软件有哪些&#xff1f; 解决方案&#xff1a; 有很多电脑检测温度的软件可供选择&#xff0c;以下是一些常用的电脑温度监测工具&#xff1a; HWMonitor&#xff1a;一款免费的硬件监控软件&#xff0…

快速生成力扣链表题的链表,实现快速调试

关于力扣链表题需要本地调试创建链表的情况 我们在练习链表题&#xff0c;力扣官方需要会员&#xff0c;我们又不想开会员&#xff0c;想在本地调试给你们提供的代码 声明&#xff1a;本人也是参考的别人的代码&#xff0c;给你们提供不同语言生成链表 参考链接&#xff1a; 参…

正则表达式入门教程

一、本文目标 让你明白正则表达式是什么&#xff0c;并对它有一些基本的了解&#xff0c;让你可以在自己的程序或网页里使用它。 二、如何使用本教程 文本格式约定&#xff1a;专业术语 元字符/语法格式 正则表达式 正则表达式中的一部分(用于分析) 对其进行匹配的源字符串 …

01背包 D. Make Them Equal

Problem - D - Codeforces 输出值不超过k次操作后的最大值。 看b数组的大小&#xff0c;b数组元素是小于1000的正整数。从1到bi如果可以&#xff0c;那么最多是大概10次的&#xff0c;因为是指数递增的&#xff0c;例如&#xff1a;1 -> 2 -> 4 -> 8 -> 16 -> …

12-使用vue2实现todolist待办事项

个人名片&#xff1a; &#x1f60a;作者简介&#xff1a;一名大二在校生 &#x1f921; 个人主页&#xff1a;坠入暮云间x &#x1f43c;座右铭&#xff1a;懒惰受到的惩罚不仅仅是自己的失败&#xff0c;还有别人的成功。 &#x1f385;**学习目标: 坚持每一次的学习打卡 文章…

【Java】若依的使用代码生成及字典的使用

一、导言 1、介绍 若依管理系统是一款基于Java语言开发的开源管理系统。它采用了Spring Boot框架&#xff0c;使得开发更加快速和高效。同时&#xff0c;它还集成了MyBatis Plus&#xff0c;进一步简化了数据库操作。若依管理系统的界面简洁美观&#xff0c;且支持多语言&#…

M系列 Mac使用Homebrew下载配置git和连接GitHub

一、首先我们需要安装Homebrew M系列 Mac安装配置Homebrewhttps://blog.csdn.net/W_Fe5/article/details/134428377?spm1001.2014.3001.5501 二、下载git 1、终端输入一下命令 brew install git 2、这时下载完成 二、配置git 1、创建用户名和邮箱 这里以我自己的邮箱举例…

Unity中Shader矩阵的行列式

文章目录 前言一、什么是矩阵的行列式&#xff1f;1、只有方阵才有行列式&#xff08;即 n X n 的矩阵&#xff09;2、数学上表示为 det(A) 或者 |A|3、行列式可以看做有向面积 或 体积 在空间中的变化影响 二、2 x 2矩阵的行列式三、3 x 3矩阵的行列式四、行列式计算总结五、使…

【电路笔记】-快速了解无源器件

快速了解无源器件 文章目录 快速了解无源器件1、概述2、电阻器作为无源器件3、电感器作为无源器件4、电容器作为无源器件5、总结 无源器件是电子电路的主要构建模块&#xff0c;没有它们&#xff0c;这些电路要么根本无法工作&#xff0c;要么变得不稳定。 1、概述 那么什么是…

word批量图片导出wps office word 图片批量导出

word批量导出图片教程 背景 今天遇到了一个场景&#xff0c;因为word里的图片打开看太模糊了&#xff0c;如果一个一个导出来太麻烦。想批量将word中的图片全部导出 但是&#xff0c;wps导出的时候需要会员 教程开始&#xff1a; 将word保存为 .docx 格式&#xff0c;可以按F1…

JAVA G1垃圾收集器介绍

为解决CMS算法产生空间碎片和其它一系列的问题缺陷&#xff0c;HotSpot提供了另外一种垃圾回收策略&#xff0c;G1&#xff08;Garbage First&#xff09;算法&#xff0c;通过参数-XX:UseG1GC来启用&#xff0c;该算法在JDK 7u4版本被正式推出&#xff0c;官网对此描述如下&am…

C语言判断闰年(ZZULIOJ1028: I love 闰年!)

题目描述 根据一个年份&#xff0c;判断是否是闰年。 输入&#xff1a;输入为一个整数&#xff0c;表示一个年份。 输出&#xff1a;如果是闰年&#xff0c;输出"Yes"&#xff0c;否则输出"No"。输出单独占一行。 样例输入 Copy 2012 样例输出 Copy Yes 分…

二维码智慧门牌管理系统升级技术解决方案

文章目录 前言一、系统升级背景二、系统升级目标 本次系统升级的主要目标包括三、系统升级方案 为实现上述目标&#xff0c;我们提出了以下升级方案&#xff1a;四、系统升级效果 通过本次升级&#xff0c;二维码智慧门牌管理系统将实现个人待办消息提醒和重要通知消息管理等新…

【数据结构】单链表 | 详细讲解

线性表顺序存储结构的优缺点 顺序表优点 无须为了表示中间的元素之间的逻辑关系而增加额外的存储空间&#xff1b;因为以数组形式存储&#xff0c;可以快速地存取表中任一位置的元素。 顺序表缺点 插入和删除操作需要移动大量元素&#xff0c;时间复杂度为O(N)&#xff1b;…