JAVA基础补充(Comparable排序接口的实现)

news2024/11/25 19:20:52

JAVA基础补充(Comparable排序接口的实现)

  • Comparable接口的实现:
    • 没有实现Comparable接口时,取出来的值无法排序
    • 如果进行排序:
    • 实现接口进行排序:
      • Controller层的实现
      • 实体类的实现
  • 复习时间:
    • 2023/08/12

Comparable接口的实现:

今天项目用到进行金额排序,之前学过的java基础有点忘记,补充一下

没有实现Comparable接口时,取出来的值无法排序

public static void main(String[] args) {

        Good1[] arr1 = new Good1[5];
        arr1[0] = new Good1("大哥",10.0);
        arr1[1] = new Good1("二弟",40.0);
        arr1[2] = new Good1("三弟",200.0);
        arr1[3] = new Good1("四弟",900.0);
        arr1[4] = new Good1("五弟",60.0);

        System.out.println("====没有实现实现Comparab接口时输出====");
        System.out.println(Arrays.asList(arr1));

    }

运行得到的结果:
在这里插入图片描述

如果进行排序:

Good1[] arr1 = new Good1[5];
        arr1[0] = new Good1("大哥",10.0);
        arr1[1] = new Good1("二弟",40.0);
        arr1[2] = new Good1("三弟",200.0);
        arr1[3] = new Good1("四弟",900.0);
        arr1[4] = new Good1("五弟",60.0);
        
		Arrays.sort(arr1);
        System.out.println("====没有实现实现Comparab接口时输出====");
        System.out.println(Arrays.asList(arr1));

报错
在这里插入图片描述

实现接口进行排序:

Controller层的实现

public static void main(String[] args) {
        Good[] arr = new Good[5];
        arr[0] = new Good("大哥",10.0);
        arr[1] = new Good("二弟",40.0);
        arr[2] = new Good("三弟",200.0);
        arr[3] = new Good("四弟",900.0);
        arr[4] = new Good("五弟",60.0);

        Arrays.sort(arr);
        System.out.println("====实现Comparab接口时输出====");
        System.out.println(Arrays.asList(arr));

    }

实体类的实现

@Data
public class Good implements Comparable<Good>{
    private String name;
    private Double price;

    public Good(String name, Double price) {
        this.name = name;
        this.price = price;
    }

//重写比较方法
//如果当前对象大于形参对象,返回1
//如果当前对象小于形参对象。返回-1
//如果相等,返回0
    @Override
    public int compareTo(Good o) {
        if (this.price>o.price)
            return 1;
        else if (this.price<o.price)
            return -1;
        else
            return 0;
    }
}

成功实现:
在这里插入图片描述


复习时间:

2023/08/12

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

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

相关文章

Spring Cloud面试突击班1

Spring Cloud面试突击班1 1.Spring Cloud 中有哪些组件&#xff0c;整个项目架构中我们的重点又有哪些&#xff1f; Spring Cloud 是一套基于Spring Boot的微服务解决方案。 Spring Cloud生态在国内主流的分为两套&#xff0c;一套是以奈飞开源的Spring Cloud Netfilx 20%&a…

Fiddler抓包工具详细使用教程

各位做测试的同学想必对抓包工具fiddler并不陌生&#xff0c;但是很多同学可能没有总结过它的用法&#xff0c;下面我总结了fiddler一些常用的用法。 Web端抓包配置 打开Fiddler&#xff0c;Tools -> Fiddler Options -> HTTPS 配置完后记得要重启Fiddler 选中Decrpt …

阿里云服务器搭建WordPress建站教程基于Windows系统

本教程是使用阿里云服务器镜像系统选择的是Windows操作系统&#xff0c;手动安装WordPress博客网站全过程。本教程介绍如何在Windows操作系统的ECS实例上搭建WordPress网站。 目录 准备工作 搭建WordPress网站 解析WordPress网站域名 准备工作 创建Windows操作系统的ECS实…

OpenCV实例(八)车牌字符识别技术(三)汉字识别

车牌字符识别技术&#xff08;三&#xff09;汉字识别 1.代码实例2.遇到问题3.汉字识别代码实例 相较于数字和英文字符的识别&#xff0c;汽车牌照中的汉字字符识别的难度更大&#xff0c;主要原因有以下4个方面&#xff1a; (1)字符笔画因切分误差导致非笔画或笔画流失。 (2…

VARIATIONAL IMAGE COMPRESSION WITH A SCALE HYPERPRIOR

文章目录 VARIATIONAL IMAGE COMPRESSION WITH A SCALE HYPERPRIORABSTRACT1 INTRODUCTION2 COMPRESSION WITH VARIATIONAL MODELS3 INTRODUCTION OF A SCALE HYPERPRIOR 个人总结动机流程思路 VARIATIONAL IMAGE COMPRESSION WITH A SCALE HYPERPRIOR ABSTRACT We describe …

【单片机】DS2431,STM32,EEPROM读取与写入

芯片介绍&#xff1a; https://qq742971636.blog.csdn.net/article/details/132164189 接线 串口结果&#xff1a; 部分代码&#xff1a; #include "sys.h" #include "DS2431.h"unsigned char serialNb[8]; unsigned char write_data[128]; unsigned cha…

服务器安装JDK

三种方法 方法一&#xff1a; 方法二&#xff1a; 首先登录到Oracle官网下载JDK JDK上传到服务器中&#xff0c;记住文件上传的位置是在哪里&#xff08;我放的位置在/www/java&#xff09;&#xff0c;然后看下面指示进行安装 方法三&#xff1a; 首先登录到Oracle官网下载…

线性回归学习总结

一 、引文 1 回归分析 回归是统计学上用来分析数据的方法&#xff0c;以了解两个或多个变量之前的关系。通常是建立被解释变量Y和解释变量X之间关系的模型。回归分析的最早形式是最小二乘法。 勒让德和高斯都将该方法应用于从天文观测中确定关于太阳的物体的轨道&#xff08;…

SpringBoot复习:(34)@EnableWebMvc注解为什么让@WebMvcAutoconfiguration失效?

它导入了DelegatingWebMvcConfiguration 它会把容器中的类型为WebMvcConfigurer的bean注入到类型为WebMvcConfigurerComposite的成员变量configurers中。 可以看到它继承了WebMvcConfigurerSupport类 而WebMvcConfigureAutoConfiguration类定义如下 可以看到一个Conditional…

LeetCode98. 验证二叉搜索树

98. 验证二叉搜索树 文章目录 [98. 验证二叉搜索树](https://leetcode.cn/problems/validate-binary-search-tree/)一、题目二、题解方法一&#xff1a;区间划分递归方法二&#xff1a;中序遍历递归迭代 一、题目 给你一个二叉树的根节点 root &#xff0c;判断其是否是一个有…

冒泡排序(超详细!)(C语言)

大家好&#xff01;欢迎来到Mr.kanglong的CSDN博文&#xff0c;今天来讨论一下冒泡排序&#xff0c;在百度百科中&#xff0c;关于为什么叫冒泡排序是这样解释的&#xff1a;因为越小的元素会经由交换慢慢“浮”到数列的顶端&#xff08;升序或降序排列&#xff09;&#xff0c…

移动云操作系统改造技术实践分享,跨操作系统云主机迁移优化(一)

近年来&#xff0c;Linux 操作系统在技术、社区和商业化方案均取得了快速发展&#xff0c;移动云先后发布了新一代天元操作系统和易行迁移工具&#xff0c;保障了移动云全场景业务高效迁移。在移动云 CentOS 迁移实践过程中&#xff0c;跨操作系统虚机迁移是改造中的一个重要环…

IP 协议的相关特性和数据链路层相关知识总结

目录 IP 协议的相关特性 一、IP协议的特性 二、 IP协议数据报格式 三、 IP协议的主要功能 1. 地址管理 动态分配 IP地址 NAT机制 NAT背景下的通信 IPV6 2. 路由控制​​​​​​​ 3.IP报文的分片与重组 数据链路层相关知识 1、以太网协议&#xff08;Ethernet&#xff09; 2.M…

“掌握类与对象,点亮编程之路“(下)

White graces&#xff1a;个人主页 &#x1f649;专栏推荐:《C语言入门知识》&#x1f649; &#x1f649; 内容推荐:“掌握类与对象&#xff0c;点亮编程之路“(上)&#x1f649; &#x1f439;今日诗词:春风得意马蹄疾&#xff0c;一日看尽长安花&#x1f439; 目录 &…

【十】PageHelper 插件源码分析

PageHelper 插件源码分析 简介&#xff1a; 在开发中经常使用到pagehelper分页插件&#xff0c;一直也只是使用没有深入去分析&#xff0c;今天花时间来研究一下pagehelper的实现原理的&#xff0c;阅读优秀的开源项目总是能有很多收获。 一、源码的获取 我们在git仓库中搜索可…

AI语音助理来了,我们还需要手机吗?

你是如何召唤苹果手机的语音助手Siri的&#xff1f; 已经12岁高龄的Siri&#xff0c;它主要提供了三个类型的“辅助功能”。 1、调动声音、闹钟、备忘录等系统基础应用的控制能力。比如&#xff1a;Hi Siri,明早两点我有个2亿美金的合同要签&#xff0c;记得提醒我。 2、调用第…

AT89C51单片机实现单片机串口互动(中断方式,单片机--单片机,应答)

说一下功能&#xff1a;客户机发送0x01到服务机 2服务单片机应答0xf2到客户机 3客户机接收到0xf2,发送信息153432这6个数字到服务机 4client发送完信息后发送0xaa结束通信 5server接收到0xaa后回复0xaa结束通信&#xff0c;从此老死不相往来 看代码&#xff1a; //发送端…

Arraylist集合

保存数据会经常使用到数组&#xff0c;但数组存在以下几个缺陷: 长度固定&#xff1b;保存的必须为同一类型的元素&#xff0c;&#xff08;基本数据类型&#xff0c;或引用数据类型&#xff09;&#xff1b;使用数组进行增加元素的步骤比较麻烦&#xff1b; 这个时候就需要用一…

24届近3年南京信息工程大学自动化考研院校分析

今天给大家带来的是南京信息工程大学控制考研分析 满满干货&#xff5e;还不快快点赞收藏 一、南京信息工程大学 学校简介 南京信息工程大学位于南京江北新区&#xff0c;是一所以大气科学为特色的全国重点大学&#xff0c;由江苏省人民政府、中华人民共和国教育部、中国气…

【AI理论学习】手把手利用PyTorch实现扩散模型DDPM

手把手利用PyTorch实现扩散模型DDPM DDPM代码实现神经网络定义辅助函数位置嵌入ResNet block注意力模块分组归一化Conditional U-Net 定义前向扩散过程定义PyTorch数据集DataLoader采样训练模型采样后续阅读 参考链接 上一篇博文已经手把手推导了扩散模型DDPM&#xff0c;本文利…