List中存放若干学生对象(学生有学号,姓名,性别等属性),去除List中重复的元素,并按学号降序输出。

package DailyWork;

import java.util.*;

/**

  • List中存放若干学生对象(学生有学号,姓名,性别等属性),去除List中重复的元素,并按学号降序输出。

*/
class Student implements Comparable{
private int age;
private int id;
private String name;
private char sex;

@Override
public boolean equals(Object o) {
    if (this == o) return true;
    if (o == null || getClass() != o.getClass()) return false;
    Student student = (Student) o;
    return id == student.id && sex == student.sex && Objects.equals(name, student.name);
}

@Override
public int hashCode() {
    return Objects.hash(id, name, sex);
}

public Student(int id, String name, char sex) {
    this.id = id;
    this.name = name;
    this.sex = sex;
}

@Override
public String toString() {
    return "Student{" + "id=" + id + ", name='" + name + '\'' + ", sex=" + sex + '}';
}

public int getId() {
    return id;
}

public void setId(int id) {
    this.id = id;
}

public String getName() {
    return name;
}

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

public char getSex() {
    return sex;
}

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


@Override
public int compareTo(Object o) {
    if (o instanceof  Student){
        Student s = (Student) o;
        if (this.id >= s.id) {
            return -1;
        }
        if (this.id < s.id) {
            return 1;
        }
    }
    throw new RuntimeException("只能和学生类型的对象比较大小!");
}

}
public class DayJune {

public static void main(String[] args) {
    List s = new ArrayList();
    s.add(new Student(12,"A",'M'));
    s.add(new Student(12,"A",'M'));
    s.add(new Student(13,"B",'F'));
    s.add(new Student(10,"A",'M'));
    System.out.println("排序前:");
    System.out.println(s);
    Collections.sort(s);		 //值得注意的是 因为比较的是id值,而   在设置比较标准的时候应该出现 ‘=’情况
    System.out.println("排序后:");
    System.out.println(s);
	//有关list转化成Linkedhashset,采取一个一个放进去,而不是 a=s 
    LinkedHashSet a = new LinkedHashSet ();
    for (int i=0; i<s.size(); i++)
    {
       a.add(s.get(i));
    }
    System.out.println("根据set集合的互异性,筛选后的结果:");
    System.out.println(a);
}

}

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
设计并实现一个学生信息管理系统 ◆建立学生管理系统信息信息包含学号姓名性别性别、地址以及成绩; ◆能够提供添加、查询、删除和修改学生管理系统信息的功能; ◆能够显示数据记录集的所有记录; ◆将系统录入的信息保存在文件; ◆能够输出管理系统信息。 1.2 设计要求 要求设计程序输出如下: 1.总的要求: 用链表实现应用系统,完成链表建立(至少包括50个节点) ,以及链表信息(节点)的插入、查找、删除、修改、输出等操作,具体的模块要求如下(要求用“文本文件”按照自定义格式存储数据记录集)。 第一个模块——主函数 main()实现功能: 根据菜单的选项调用各函数,并完成相应的功能。 第二个模块——Menu()实现功能:显示提示菜单。 第三个模块——Quit()实现功能:退出菜单。 第四个模块——Create()实现功能:创建新的是数据记录。 第五个模块——Add()实现功能:增加新数据记录,并返回菜单。 第六个模块——Find()实现功能:按要求查询相关的信息,如果找到则显示该信息,如果未找到则提示文件没有该信息,并返回菜单。 第七个模块——Alter()实现功能:修改某条记录的信息,如果未找到要修改的记录,则提示系统无此记录,并返回菜单。 第八个模块——Delete()实现功能:删除某条记录,如果未找到要删除的记录,则提示数据记录集没有,并返回菜单。 第九个模块——List()实现功能: 能够分页显示数据记录集的所有记录(每按下一次回车键,显示下 10条记录数据)

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值