JAVASE进阶day07(泛型,集合,Set,TreeSet,枚举,数据结构)

news2025/4/17 17:03:32

泛型

1.泛型的基本使用

限制集合存储的数据类型

package com.lu.day07.generics;

/**
 * 定义了一个泛型类
 * E 泛型通配字母(不固定代替真实数据类型A-Z都可以)
 * 常见的泛型通配字母:
 *      E:element 元素
 *      T:type 类型
 *      R:return 返回值类型
 *      K:key 键
 *      v: value 值
 * 子类一旦指定泛型父类用的也是子类的泛型
 * @param <E>
 */
public class Date<E> {
    private E date;

    public E getDate() {
        return date;
    }

    public void setDate(E date) {
        this.date = date;
    }
    public static void main(String[] args) {
        Date<String> a = new Date<>();
        a.setDate("我是你爸爸");
        String date = a.getDate();
        System.out.println(a.getDate());

        Date<Integer> b = new Date<>();
        b.setDate(123);
        Integer date1 = b.getDate();
        System.out.println(date1);
    }
}

 Set

1.set集合的概念

2.HashSet的基本使用 

package com.lu.day07.setdome;

import java.util.HashSet;
import java.util.Objects;

public class SetDome {
    public static void main(String[] args) {
        HashSet<String> set = new HashSet<>();
        set.add("张三");
        set.add("张三");
        set.add("王二");
        set.add("劳模");
        set.add("小李");
        System.out.println(set);

        //HashSet自定义对象想要去重必须重写 equals 和 hashCode 方法
        HashSet<Teacher> t = new HashSet<>();
        t.add(new Teacher("张老师","男","教师"));
        t.add(new Teacher("张老师","男","教师"));
        t.add(new Teacher("王老师","女","幼师"));
        t.add(new Teacher("李老师","男","主任"));
        System.out.println(t);
        //为什么重写 equals 必须重写 hashCode?
        //hash(哈希):是由hash算法对任意的输入产生一个整数,并且是固定的
        //哈希碰撞:同一个输入产生的hash值永远一样,但是不同的输入生成的hash值可能一样
        //hash如果内容一样就生成一样的hash值但是(如果内容相同)hash值可能相同这时候就需要equals进行比较了
        //如果两个对象根据 equals 方法认为是相等的,那么它们必须有相同的 hashCode 值。
        //如果两个对象 hashCode 值相等,它们未必 equals 相等,但如果 hashCode 不相等,它们一定不相等。
        String a = "a";
        String b = "b";
        System.out.println(Objects.hashCode(a));
        System.out.println(Objects.hashCode(b));
    }
}
package com.lu.day07.setdome;

import java.util.Objects;

public class Teacher {
    private String name;
    private String sex;
    private String job;

    public Teacher() {
    }

    public Teacher(String name, String sex, String job) {
        this.name = name;
        this.sex = sex;
        this.job = job;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getSex() {
        return sex;
    }

    public void setSex(String sex) {
        this.sex = sex;
    }

    public String getJob() {
        return job;
    }

    public void setJob(String job) {
        this.job = job;
    }

    @Override
    public String toString() {
        return "Teacher{" +
                "name

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

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

相关文章

Blender 中导出模型fbx

准备模型&#xff1a;确保你的模型已经完成&#xff0c;并且所有的材质、纹理等都已设置好。 应用所有变换&#xff1a; 选择模型&#xff0c;按下 CtrlA&#xff0c;选择 "All Transforms" 以应用所有的变换&#xff08;位置、旋转和缩放&#xff09;。 导出模型&a…

sql常用语句:

1.联合查询 对表中的数据进行限制&#xff1b; 2.从一个表复制到另一个表 SELECT INTO 将数据复制到一个新表&#xff08;有的 DBMS 可以覆盖已经存在的表&#xff0c;这依赖于 所使用的具体 DBMS&#xff09; SELECT *&#xff08;字段&#xff09; INTO CustCopy FROM Cu…

【Redis】简单了解Redis中常用的命令与数据结构

希望文章能给到你启发和灵感&#xff5e; 如果觉得文章对你有帮助的话&#xff0c;点赞 关注 收藏 支持一下博主吧&#xff5e; 阅读指南 开篇说明一、基础环境说明1.1 硬件环境1.2 软件环境 二、Redis的特点和适用场景三、Redis的数据类型和使用3.1字符串&#xff08;String&…

ThinkPad,联想电脑F1(声音键)一直显示(亮)解决办法

ThinkPad&#xff0c;联想电脑F1&#xff08;声音键&#xff09;一直显示&#xff08;亮&#xff09; 打开“服务” 找到&#xff1a;Lenovo Hotkey Client Loader&#xff0c;选择”启动“

十九.升职加薪系列-JVM优化-解决JVM性能瓶颈的JIT即时编译器

前言 在很多年以前&#xff0c;做C或者C的程序员经常说Java语言的运行速度不如C或C&#xff0c;Java运行速度慢主要是因为它是解释执行的&#xff0c;而C或C是编译执行的&#xff0c;解释执行需要通过JVM虚拟机将字节码实时翻译成机器码&#xff08;边翻译边执行&#xff09;&…

ArcGIS Pro入门制图教程

地理信息系统 (GIS) 是一种使用地图显示和分析数据的方式。在本教程中&#xff0c;您将学习桌面 GIS 应用程序 ArcGIS Pro 的基础知识。 新加坡的一家旅行社希望制作一款宣传册&#xff0c;用于向游客介绍距离市中心热门目的地最近的火车站。该宣传册将与带有文本信息的地图相…

【Element-UI 表格表头、内容合并单元格】

一、实现效果&#xff1a; &#x1f970; 表头合并行、合并列 &#x1f970; &#x1f970; 表格内容行、合并列 &#x1f970; thead和tbody分别有单独的合并方法 二、关键代码&#xff1a; <el-table size"mini" class"table-th-F4F6FB" align&qu…

VUE_TypeError: Cannot convert a BigInt value to a number at Math.pow 解决方法

错误信息 TypeError: Cannot convert a BigInt value to a number at Math.pow vue 或 react package.json添加 "browserslist": {"production": ["chrome > 67","edge > 79","firefox > 68","opera >…

用神经架构搜索给LLM瘦身,模型变小,准确度有时反而更高

用神经架构搜索给 LLM 瘦身&#xff0c;同等准确度可让 LLaMA2-7B 模型大小降 2 倍。 大型语言模型&#xff08;LLM&#xff09;的一个主要特点是「大」&#xff0c;也因此其训练和部署成本都相当高&#xff0c;如何在保证 LLM 准确度的同时让其变小就成了非常重要且有价值的研…

SaaS模式的海外仓系统:有什么优势,理由是什么?

海外仓系统是海外仓使用频率最高的工具类系统&#xff0c;根据数据显示&#xff0c;超过84%的海外仓都会通过海外仓系统规划仓库管理。 然而&#xff0c;市场上存在许多不同的海外仓系统类型供大家选择&#xff0c;主要是分为两类&#xff1a;本地部署和saas模式。今天主要是和…

AI绘画何以突飞猛进? 从历史到技术突破, 一文读懂火爆的AI绘画发展史

前言 自从前段时间偶然间被当下AI绘画的水平震住之后&#xff08;超越一切的AI作画神器&#xff0c;和它创作的234个盔甲美女未来战士&#xff09; &#xff0c;作者深感当今AI绘画的飞速进展或许已远超所有人的预期。 而这里的前因后果&#xff0c;包括AI绘画的历史&#xff…

科研人必备!6个AI学术论文写作好帮手

人们都说一个新的人工智能时代已经到来&#xff0c;很多工作都将被这类机器人取代。不可否认的是&#xff0c;在学术界&#xff0c;有了 AI&#xff0c;科学研究人员将可以有更多时间专注在更有意义的任务上。科研人员可以利用 AI 工具分析大量数据、识别模式、做出决策&#x…

stm32h743 阿波罗v2 NetXduo http server CubeIDE+CubeMX

在这边要设置mpu的大小&#xff0c;要用到http server&#xff0c;mpu得设置的大一些 我是这么设置的&#xff0c;做一个参考 同样&#xff0c;在FLASH.ld里面也要对应修改&#xff0c;SECTIONS里增加.tcp_sec和 .nx_data两个区&#xff0c;我们用ram_d2区域去做网络&#xff…

电商IP分类及其应用是什么?

在现代电商运营中&#xff0c;IP地址不仅是网络通信的基础&#xff0c;也扮演着关键的角色&#xff0c;支持多种功能和应用场景。本文将介绍几种常见的电商IP分类&#xff0c;以及它们在电商领域中的具体应用。 1. 前台IP与后台IP 电商网站在运营过程中通常需要区分前台IP和后…

机器学习——L1 L2 范数 —>L1 L2正则化

1、L1范数和L2范数是机器学习和数据分析中经常使用的两种范数&#xff0c;它们之间存在多个方面的区别。 以下是关于L1范数和L2范数区别的详细解释&#xff1a; 一、定义差异 L1范数&#xff1a;也被称为曼哈顿范数&#xff0c;是向量元素的绝对值之和。对于一个n维向量x&am…

全网最全,保姆级Stable Diffusion系列入门使用教程(图生图、LoRA、提示词权重),建议收藏!

大家好&#xff0c;我是画画的小强 今天将给大家讲解 Stable Diffusion 入门使用教程的 图生图、LoRA和提示词权重的教程&#xff0c;如果你还没有使用或者安装SD&#xff0c;那么可以看看我的往期入门教程AI绘画『Stable Diffusion』面向小白的免费AI绘画工具&#xff1a;解压…

技术开发分享:商品详情APP原数据实时接口代码解析

商品详情app端原数据实时接口代码解析主要包括以下几个步骤&#xff1a; 获取商品ID&#xff1a;首先需要从淘宝的分享链接中提取商品ID&#xff0c;可以通过正则表达式匹配的方式获取。 构建请求URL&#xff1a;根据商品ID构建请求URL&#xff0c;通常包括淘宝的商品详情API地…

SAP HCM 如何知道标准程序有自定义增强代码 Configure Debugger Layer

导读 INTRODUCTION Configure Debugger Layer &#xff1a;今天分享下我在处理HCM业务中&#xff0c;如何通过debug的Configure Debugger Layer找到标准程序中的客制化的代码&#xff1f;也许在网上查看到很多找badi的方法或者其他的办法&#xff0c;但是这些办法比较繁琐&…

电脑数据恢复篇:如何从电脑中恢复已删除的照片

按下 Shift Delete 后后悔了&#xff1f;想要恢复已删除的照片&#xff1f;好吧&#xff0c;如果是这样的话&#xff0c;你来对地方了。在本文中&#xff0c;我们将讨论如何从 PC 中恢复已删除的文件。 自从摄影的概念被提出以来&#xff0c;人们就对它着迷。以前&#xff0c…

Windows下载及安装OpenSSL

文章目录 前言一、OpenSSL下载二、OpenSSL安装1.双击下载好的安装包2.选择【I accept the agreement】→ 点击【Next】3.选择OpenSSL安装的位置 → 点击【Next】4.点击【Next】5.点击【Next】6.点击【Install】安装OpenSSL7.等待安装8.取消勾选 → 点击【Finish】完成安装 三、…