java 中根据类的属性排序

 1 package edu.del;
 2
 3 import java.util.ArrayList;
 4 import java.util.Collections;
 5 import java.util.List;
 6 import java.util.Scanner;
 7
 8 class Student implements Comparable<Student>{
 9     String name;
10     int score;
11
12     public Student(String name, int score) {
13         this.name = name;
14         this.score = score;
15     }
16
17     public Student() {
18
19     }
20
21     public String getName() {
22         return name;
23     }
24
25     public void setName(String name) {
26         this.name = name;
27     }
28
29     public int getScore() {
30         return score;
31     }
32
33     public void setScore(int score) {
34         this.score = score;
35     }
36
37     @Override
38     public String toString() {
39         return "Student{" +
40                 "name=‘" + name + ‘\‘‘ +
41                 ", score=" + score +
42                 ‘}‘;
43     }
44
45 //    @Override
46 //    public int compareTo(Student o) {
47 //        //假如result返回1。Collections.sort(List)方法就是升序;
48 //        //假如result返回-1。Collections.sort(List)方法就是降序;
49 //        int num=new Integer(o.getScore()).compareTo(this.getScore());//这里面是按照降序排列
50 //        //int num=new Integer(this.getScore()).compareTo(this.getScore()); //测试升序
51 //        return num;
52 //
53 //    }
54     @Override
55     public int compareTo(Student o) {
56         //这里是按照名字字符属性排序
57         int num =o.getName().compareTo(this.getName());
58         //int num=this.getName().compareTo(o.getName());
59         return num;
60     }
61 }
62
63 public class sort_class {
64     public static void main(String[] args) {
65         Scanner scanner =new Scanner(System.in);
66         System.out.println("请输入学生数量:");
67         int num =scanner.nextInt();
68         Student[] student =new Student[num];
69         List<Student> list =new ArrayList<>();
70
71         for (int i = 0; i <num ; i++) {
72
73             list.add(new Student(scanner.next(),scanner.nextInt()));
74         }
75         Collections.sort(list);
76
77         //输出一下看看
78
79         for (int i = 0; i <num ; i++) {
80             System.out.print(list.get(i).getName()+" ");
81             System.out.println(list.get(i).score);
82         }
83     }
84 }

原文地址:https://www.cnblogs.com/AnonymousDestroyer/p/10624683.html

时间: 2024-08-29 10:53:39

java 中根据类的属性排序的相关文章

java中list按照某个属性排序方法

public List sort(List list,final String sortName,final String direction){ Collections.sort(list, new Comparator(){ public int compare(Object a, Object b){ try { //根据属性名获取到field Field field = a.getClass().getDeclaredField(sortName); //field设置为public访问

Java中Properties类

Java中Properties类简介 知识学而不用,就等于没用,到真正用到的时候还得重新再学. Properties类继承自Hashtable,如下: 它主要用于读取Java的配置文件,由于配置文件中的很多变量时经常改变的,通过这个类可以让用户脱离程序本身去修改相关的变量配置.在Java中,其配置文件常为.properties文件,格式为文本文件,内容的格式为“键=值”的格式,#打头的是注释行,Properties会忽略注释.允许只有key没有value,没有value时,value会被set成

Java中Integer类的方法

字段摘要 static int MAX_VALUE              保持 int 类型的最大值的常量可取的值为 231-1. static int MIN_VALUE              保持 int 类型的最小值的常量可取的值为 -231. static int SIZE              以二进制补码形式表示 int 值的位数. static Class<Integer> TYPE              表示基本类型 int 的 Class 实例. 构造方法摘要

Java中的类修饰符

资料主要来源于网络(http://60.28.60.3/zy/java-new/zhishidian/chap3/3.htm) 之前每次写小测试程序的时候,总是把一个类放在一个Java文件中,按理说这样比较规范,可主要原因是我是在不知道怎么在一个文件里放多个类,可见java基础有多差了...只要把类的属性改成默认的就可以了,也就是前面什么控制符都不加,采用默认的方式. Java语言程序设计中,定义类时除了要使用class 关键字说明所定义的数据类型是类,还可以在 class 之前增加若干类的修饰

Java中主类中定义方法加static和不加static的区别

Java中主类中定义方法加static和不加static的区别(前者可以省略类名直接在主方法调用,后者必须先实例化后用实例调用) 知识点:1.Getter and Setter 的应用 2.局部变量与成员变量(也可叫做全局变量) 3.Static关键字的用法 a.成员变量被static修饰后的所有类的共享属性 b.方法被static修饰之后,在本类内调用的类名省略问题;以及不用Static,即使在本类内也必须先实例化 4.This关键字的用法 this:是当前类的对象引用.简单的记,它就代表当前

在java中String类为什么要设计成final?

大神链接:在java中String类为什么要设计成final? - 程序员 - 知乎 我进行了重新排版,并且更换了其中的一个例子,让我们更好理解. String很多实用的特性,比如说"不可变性",是工程师精心设计的艺术品!艺术品易碎!用final就是拒绝继承,防止世界被熊孩子破坏,维护世界和平! 1. 什么是不可变? String不可变很简单,如下图,给一个已有字符串"abcd"第二次赋值成"abcedl",不是在原内存地址上修改数据,而是重新指

java中匿名类的注意细节

abstract class Outer{ int num; public Outer(int x){ num = x; } public abstract void show1(); public abstract void show2(); } public class PC{ public static void main(String[] args){ new Outer(55)//构造父类部分 //子类重写部分 { public void show1(){ System.out.pri

零基础入门学习java第十一节:Java中的类和对象

今天要说的是Java中两个非常重要的概念——类和对象. 什么是类,什么又是对象呢?类是对特定集合的概括描述,比如,人,这个类,外在特征上,有名字,有年龄,能说话,能吃饭等等,这是我们作为人类的相同特征,那么对象呢?我们口口声声说要面向对象编程,可是找了这么久也没找到对象,这还怎么编程(滑稽).此对象非彼对象,Java中的对象是某个具体类的实例,就好比你和我都是人类这个大类的一个实例个体,也就是说,我们都是人类的一个具体对象,我们有各自的名字和年龄. 那为什么要用类和对象这样的概念呢? 这是一个好

hadoop中Text类 与 java中String类的区别

hadoop 中 的Text类与java中的String类感觉上用法是相似的,但两者在编码格式和访问方式上还是有些差别的,要说明这个问题,首先得了解几个概念: 字符集: 是一个系统支持的所有抽象字符的集合.字符是各种文字和符号的总称,包括各国家文字.标点符号.图形符号.数字等.例如 unicode就是一个字符集,它的目标是涵盖世界上所有国家的文字和符号: 字符编码:是一套法则,使用该法则能够对自然语言的字符的一个集合(如字母表或音节表),与其他东西的一个集合(如号码或电脉冲)进行配对.即在符号集