首页 > 编程语言 >7-2 jmu-Java-04面向对象进阶-01-接口-Comparable

7-2 jmu-Java-04面向对象进阶-01-接口-Comparable

时间:2024-09-26 20:49:13浏览次数:3  
标签:Comparable 01 Java name int age PersonSortable public String

编写实现Comparable接口的PersonSortable类,使其按name以及age排序

1.编写PersonSortable类

属性:private name(String)private age(int)
有参构造函数:参数为name,age
toString函数:返回格式为:name-age
实现Comparable接口:实现先对name升序排序,如果name相同则对age进行升序排序

2.main方法中

  1. 首先输入n
  2. 输入n行name age,并创建n个对象放入数组
  3. 对数组进行排序后输出。
  4. 最后一行使用System.out.println(Arrays.toString(PersonSortable.class.getInterfaces()));输出PersonSortable所实现的所有接口

输入样例:

5
zhang 15
zhang 12
wang 14
Wang 17
li 17

输出样例:

Wang-17
li-17
wang-14
zhang-12
zhang-15
//这行是标识信息
import java.util.*;
 
class PersonSortable implements Comparable{
    private String name;
    private int age;
 
    public PersonSortable() {}
 
    public PersonSortable(String name, int age) {
        this.name = name;
        this.age = age;
    }
 
    @Override
    public String toString() {
        return name+"-"+age;
    }
 
    public String getName() {
        return name;
    }
 
    public void setName(String name) {
        this.name = name;
    }
 
    public int getAge() {
        return age;
    }
 
    public void setAge(int age) {
        this.age = age;
    }
 
    @Override
    public int compareTo(Object o) {
        PersonSortable per=(PersonSortable)o;
        int x = this.name.compareTo(per.name);
        if(x!=0){
            return x;
        }else{
            if (this.age>per.age)
                return 1;
            else if(this.age<per.age)
                return -1;
            else
                return 0;
        }
    }
}
public class Main {
    public static void main(String[] args) {

        Scanner sc=new Scanner(System.in);
        int count=Integer.valueOf(sc.nextLine());
        ArrayList<PersonSortable> list=new ArrayList();

        for (int i=0;i<count;i++){
            String string[]=sc.nextLine().split(" ");
            list.add(new PersonSortable(string[0],Integer.valueOf(string[1])));
        }

        Collections.sort(list);
        for (PersonSortable p:list){
            System.out.println(p);
        }

        System.out.println(Arrays.toString(PersonSortable.class.getInterfaces()));
    }
}

 

标签:Comparable,01,Java,name,int,age,PersonSortable,public,String
From: https://blog.csdn.net/GZH_mxjx/article/details/142577818

相关文章

  • java练习生第二练
    不可变集合不可变集合(ImmutableCollections)在编程中指的是一旦创建,其内容(如元素、大小等)就不能被修改的集合类型。这类集合对于线程安全非常有用,因为它们自然避免了多线程环境下因并发修改而产生的竞争条件和错误。同时,它们也有助于设计不可变对象,这对于确保数据一致性和简......
  • Java毕业设计-基于SSM框架的供电所档案管理系统项目实战(附源码+论文)
    大家好!我是岛上程序猿,感谢您阅读本文,欢迎一键三连哦。......
  • Java毕业设计-基于SSM框架的宠物领养系统项目实战(附源码+论文)
    大家好!我是岛上程序猿,感谢您阅读本文,欢迎一键三连哦。......
  • 掌握 JavaScript 的数学对象:内置数学函数和属性的综合指南
    javascript数学对象:概述javascriptmath对象是一个内置对象,提供数学函数和常量的集合。它不是构造函数,因此您无法创建它的实例;相反,它是通过其静态方法和属性直接使用的。1.常数math对象包含几个对数学计算有用的常量:math.e:自然对数的底数,约等于2.718。math.ln2:2的自然对......
  • 掌握 JavaScript 运算符:从基础知识到按位
    在本博客中,我们将深入探讨javascript运算符的世界,涵盖从基本算术到按位运算的所有内容。我们将探讨“一元”、“二元”和“操作数”等术语,并提供实际示例来帮助您理解每个概念。让我们开始吧!基本运算符一元、二元和操作数一元运算符?作用于单个操作数(例如,x)。二元运算符?作......
  • 掌握 JavaScript:初学者的基本技巧
    JavaScript是一种多功能且功能强大的编程语言,构成了现代Web开发的支柱。如果您是JavaScript新手,这里有一些基本技巧可帮助您掌握其概念并开始构建交互式Web应用程序:1.了解基础知识:变量和数据类型:了解变量、它们的类型(数字、字符串、布尔值、对象、数组等)以及如何操......
  • 掌握 Lerna:管理 JavaScript Monorepos 的指南
    目录简介第一章:lerna是什么?为什么选择monorepos?第2章:安装和设置lerna先决条件分步安装指南设置您的第一个lerna项目第3章:lerna中的依赖关系管理独立依赖提升共享依赖项引导包第4章:跨包运行脚本全局执行脚本针对特定包第5章:使用lerna进行版本控制和发布固定模式与......
  • SSRF类型的CTF题目[De1CTF 2019]SSRF Me1
    启动BUUCTF靶场,先查看一下提示:显示出flag的文件路径是/flag.txt发现是一段python代码,整理一下:#!/usr/bin/envpython#encoding=utf-8fromflaskimportFlaskfromflaskimportrequestimportsocketimporthashlibimporturllibimportsysimportosimportjson......
  • 手册和规范:掌握 JavaScript 指南
    欢迎回到我们的JavaScript世界之旅!在这篇博文中,我们将深入探讨有助于您理解和掌握JavaScript的基本手册和规范。无论您是初学者还是经验丰富的开发人员,这些资源都将作为您学习和故障排除的首选参考。让我们探索官方ECMAScript规范、MDNWeb文档和其他有用的资源。官......
  • JavaWeb基础-学习笔记01
    01JavaWeb介绍一个Web的互联网系统可以分为三个主要部分:网页、JavaWeb程序、数据库网页:展现数据数据库:存储和管理数据javaWeb程序:逻辑处理因此,JavaWeb的学习内容对应以上三部分内容:数据库部分MySQL:一款主流的数据库产品(数据库管理系统),用结构化查询语言SQL操作数据库JD......