Compareable接口

 

重写 compareTo方法如下:

public int compareTo(Object o) {Name n = (Name) o;int lastCmp = secondName.compareTo(n.secondName);return(lastCmp!=0 ? lastCmp:firstName.compareTo(n.firstName));}

 

 

完整代码如下

 

import java.util.List;
import java.util.LinkedList;
import java.util.Collections;
public class Test {public static void main(String[] args) {List l1 = new LinkedList();l1.add(new Name("Karl","M"));l1.add(new Name("Steven","Lee"));l1.add(new Name("John","O"));l1.add(new Name("Tom","M"));System.out.println(l1);Collections.sort(l1);System.out.println(l1);/*Set s = new HashSet();s.add("hello");s.add("world");s.add(new Name("f1","11"));s.add(new Integer(100));*//*s.add("hello");s.add("hello");*///Set /*Set s1 = new HashSet();Set s2 = new HashSet();s1.add("a");s1.add("b");s1.add("c");s2.add("d");s2.add("a");s2.add("b");Set sn = new HashSet(s1);sn.retainAll(s2);Set su = new HashSet(s1);su.addAll(s2);System.out.println(sn);System.out.println(su);*//*Collection c = new HashSet();c.add("hello");c.add(new Name("f1","11"));c.add(new Name("f2","12"));c.add(new Name("f3","13"));c.add(new Integer(100));c.remove("hello");c.remove(new Integer(100));Iterator i = c.iterator();while(i.hasNext()) {Name n = (Name)i.next();System.out.print(n.getfirstName()+" ");}*//*System.out.println(c.remove(new Name("f1","11")));System.out.println(c);*/}
}
class Name implements Comparable {private String firstName,secondName;public Name(String firstName,String secondName) {this.firstName = firstName;this.secondName = secondName;}public String getfirstName() {return firstName;}public String getsecondName() {return secondName;}public String toString() {return firstName+" "+secondName;}public boolean equals(Object obj) {if(obj instanceof Name) {Name name = (Name) obj;return (firstName.equals(name.firstName))&&(secondName.equals(name.secondName));}return super.equals(obj);}public int hashCode() {return firstName.hashCode();}public int compareTo(Object o) {Name n = (Name) o;int lastCmp = secondName.compareTo(n.secondName);return(lastCmp!=0 ? lastCmp:firstName.compareTo(n.firstName));}
}

 

转载于:https://www.cnblogs.com/lsswudi/p/11365529.html

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

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

相关文章

@ServeletComponentScan和@ComponentScan的区别

一、SpringBoot中使用Servlet 在SpringBootApplication上使用ServletComponentScan注解后,Servlet、Filter、Listener可以直接通过WebServlet、WebFilter、WebListener注解自动注册,无需其他代码。 1.在入口Application类上加入注解ServletComponentSca…

Linux系统imx6ull开发板内核安装STM Virtual ComPort虚拟串口驱动

目录 前言 一、问题描述 二、解决步骤 1.更改option.c文件 2.修改内核编译选项 3.编译内核并加载到开发板 总结 前言 本文硬件使用正点原子imx6ull-min底板emmc ddr512核心板,软件使用正点原子针对imx6ull开发板提供的出场Linux内核源码、设备树与根文件系统&#…

MDK5:正点原子stm32遇Target not created的解决方法

几乎在直接打开这里的test.uvprojx文件进行编译运行时都会出现以上的错误。这时候只需关闭改工程,然后右击keil5的应用程序,点击“以管理员身份运行”,打开之后即可编译成功。

MDK5 添加Device

现象如下图: 出现这个问题的原因有两种,因此有两种解决方法: 第一种:大部分为网上介绍的,没有下载Pack包,进入Packs Installer中选择自己需要的芯片系列选择包进行下载即可。 第二种:不常见的…

Keil MDK 软件包(MDK5 Software Packs)离线下载方法

最近 Keil 官网的 MDK 软件包下载页面不展示软件包的下载列表了,无法下载软件包,如图1所示。 图1 Keil 官网 MDK5 Software Packs 下载页面截图 其实是有办法下载软件包的,方法如下: 1、打开 Microsoft Edge 浏览器(其…

Keil MDK5 打开MDK4项目

安装完最新版本keil(5.38a)后,需要打开几个MDK4的项目,结果一打开keil就提示报错了。 这里我选择的是第二种方式,首先安装legacy support,以下是下载链接 MDK v4 Legacy Support (keil.com) 安装完成以后,可能会遇到另…

keil MDK5 无法 Go To Definition Of

目录 1.勾选 Browse Information 2.重新编辑即可 弹出如下窗口: 编译没有通过,或者函数有编译条件限制(在某个条件成立时,函数才会被keil编译),没有被编译的函数是不能使用“Go To Definition Of”跳转到…

MDK5__配色方案

这个MDK5的配色方案是仿照Notepad里面的Plastic Code Wrap主题,字体是Courier New,个人比较喜欢这个主题配色方案,同时经常看代码不会觉得太刺眼 配色过程 修改颜色有两种方案,最简单的是在MDK软件中,通过Edit->C…

MDK5的安装

一、安装MDK5 下载: 官方下载地址:http://www2.keil.com/mdk5 1.打开官方网站,并点击下载MDK5 2.按照要求填写信息并点击提交 3.点击下载 安装 1.双击图标进行安装 2.进入安装界面——点击Next(下一步) 3.选中…

ARM KEIL: MDK5 Software Packs

ARM:Advanced RISC Machines 先进的精简指令集器件。 ARM是最当下最流行的处理器,尤其在嵌入式领域。 KEIL被ARM收购,MDK5是ARM官方的开发工具。 作为一款面向微控制器和微处理器的软件开发工具,需要支持各种各样的芯片。 所以…

STM32——新建 Keil MDK 5 工程(寄存器版本)

注:本文仅依照加粗字体和图片可快速新建 Keil MDK 5 工程 由于文章没有细分步骤,标记点用于方便阅读。 🔺 标记点 ① 打开 Keil MDK 5,点击Project > New μVision Project,如图: 🔺 标记…

MDK5之.map文件解析

MDK5之.map文件解析 前言一、.map文件总览二、详细介绍1、Section Cross References:模块、段(入口)交叉引用2、Removing Unused input sections from the image:移除未使用的模块3、Image Symbol Table:映射符号表4、Memory Map of the imag…

MDK5 与 GIT 配合使用

参考 Abstract: (keil.com) 1,增加忽略文件 (.gitignore) (我一般喜欢把输出文件放到Objects/目录下) Listings/ Objects/ *.TMP 2 最好是mdk5.15以上版本,不然需要拷贝文件到此目录 Vision 5.15 is providing a SVCS templ…

Keil MDK5硬件仿真之基本介绍

Keil MDK5这个软件是提供硬件仿真功能的,所谓硬件仿真就是指将当前的程序实时的运行在你的设备中,并且可以检测程序中的变量的值,或者控制程序运行的流程,下面就让我们来看一下如何进行硬件仿真吧。 第一步,单击Optio…

keil MDK5软件包介绍、下载、安装与分享

前言 本文介绍了Keil MDK5软件包的分类、作用、下载、安装与更新。软件包下载可通过Keil自带的Pack Installer、进入Keil Pack下载网站手动下载、去芯片厂家官网下载三种方式。同时分享了一个小技巧,可以直接分享已安装好的软件包给别人。 一. Keil MDK软件包介绍 K…

Ubuntu安装MDK5

1 环境部署 Ubuntu 18.04 Wine 3.0.4 1.1 查看CPU信息 lscpu序号属性描述1架构x86_642CPU 运行模式32-bit, 64-bit3字节序Little Endian4CPU45在线 CPU 列表0-36每个核的线程数17每个座的核数48座19NUMA 节点110厂商 IDGenuineIntel11CPU 系列613型号15814型号名称Intel Core…

下载MDK5 Software Packs导入Keil5

⭐最近在用Keil5编译STM32L系列的项目文件,在选择芯片型号时并没有自己的STM32L系列的芯片,找了很久,才找到下载的网址,现在来分享一下自己下载和安装的过程。🌈 1.下载网址 MDK Software Packs下载地址 以上就是MDK5的…

MDK5注释乱码以及解决方案

在MDK5中会出现注释乱码的情况 //GPIO_SetBits(GPIOB,GPIO_Pin_7);//0GPIO_InitStructure.GPIO_Pin GPIO_Pin_8; GPIO_InitStructure.GPIO_Mode GPIO_Mode_OUT; GPIO_InitStructure.GPIO_OType GPIO_OType_PP; //GPIO_InitStructure.GPIO_Speed GPIO_Speed_100MHz; /…

MDK5新建工程

文章目录 一、MDK简介二、建立STM32工程模板 一、MDK简介 MDK 源自德国的 KEIL 公司,是 RealView MDK 的简称。在全球 MDK 被超过 10 万的嵌入式开发工程师使用。目前最新版本为:MDK5.14,该版本使用 uVision5 IDE 集成开发环境,是…

MDK5简介

1.MDK5 由两个部分组成:MDK Core 和 Software Packs。其中,Software Packs 可以独立于工具链进行新芯片支持和中间库的升级。 2. MDK Core 又分成四个部分:uVision IDE with Editor(编辑器),ARM C/C Compi…