文档章节

Comparable比较

浅浅静听
 浅浅静听
发布于 2015/03/17 16:39
字数 212
阅读 2
收藏 0

package com.tz.util;

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Set;
import java.util.TreeSet;

public class Student implements Comparable<Student>{
 
 private String name;
 private int ma,cn,en;
 private int sum;
 Student(String name,int ma,int cn,int en){
  this.name=name;
  this.ma=ma;
  this.cn=cn;
  this.en=en;
  sum=ma+cn+en;
 }
 public String getName(){
  return name;
 }
 public int getSum(){
  return sum;
 }
 @Override
 public int hashCode() {
  return super.hashCode()+sum*78;
 }
 @Override
 public boolean equals(Object obj) {
  if (!(obj instanceof Student)) {
   Student s=(Student) obj;
  }
  return super.equals(obj);
  
 }
 @Override
 public int compareTo(Student s) {
  int num=new Integer(this.sum).compareTo(new Integer(s.sum));
  if (num==0) {
   return this.name.compareTo(s.name);
  }
  return num;
 }
 @Override
 public String toString() {
  // TODO Auto-generated method stub
  return "student["+name+","+ma+"]";
 }
}
class StudentInfoTool{
 public static Set<Student> getStudent() throws IOException{
  BufferedReader bufr=new BufferedReader(new InputStreamReader(System.in));
  Set<Student> stus=new TreeSet<Student>();
  String line=null;
  while ((line=bufr.readLine())!=null) {
   if ("over".equals(line))
    break;
    String [] info=line.split(",");
    Student stu=new Student(info[0], Integer.parseInt(info[1]), Integer.parseInt(info[2]), Integer.parseInt(info[3]));
   stus.add(stu);
  }
  bufr.close();
  return stus;
 }
 public static void write2File(Set<Student> stus) throws IOException{
  BufferedWriter bufw=new BufferedWriter(new FileWriter("stuinfo.txt"));
  for (Student stu : stus) {
   bufw.write(stu.toString()+"\t");
   bufw.write(stu.getSum());
   bufw.newLine();
   bufw.flush();
  }
  bufw.close();
 }
}

© 著作权归作者所有

上一篇: GUI图形化界面
下一篇: DataStream
浅浅静听
粉丝 0
博文 27
码字总数 7644
作品 0
渝北
程序员
私信 提问
Comparable与Comparator的区别

前几天在项目中遇到了一个将复杂对象进行排序的问题:计算BingMap地图上距离当前位置5KM内发生事故(TrafficIncident)的点到当前位置的距离,并按距离升序排序。距离都算出来了,但这些Tra...

摆渡者
2014/04/12
978
0
jave 对集合中的对象按照多个字段排序

格式一: public static <T extends Comparable<? super T>> void sort(List<T> list) 说明:该方法中的泛型<T>都是Comparable接口的子类,即只有是Comparable接口子类类型的数据,才能进行比......

干干
2017/12/06
152
0
java底层比较器Comparable和Comparator比较对象时的使用

刚开始学习java时可能对这2个接口存在一定的疑惑,对于Comparable意思是说:可以与此对象进行比较的那些对象的类型, 此接口强行对实现它的每个类的对象进行整体排序。这种排序被称为类的自然...

strict_nerd
2015/05/22
1K
0
Comparable 和 Comparator 的区别

Java 中为我们提供了两种比较机制:Comparable 和 Comparator,他们之间有什么区别呢?今天来了解一下。 Comparable 自然排序 Comparable 在 java.lang 包下,是一个接口,内部只有一个方法 ...

Adel
2016/12/13
34
0
Java 中 Comparable 和 Comparator 比较

本文,先介绍Comparable 和Comparator两个接口,以及它们的差异;接着,通过示例,对它们的使用方法进行说明。 Comparable 简介 Comparable 是排序接口。 若一个类实现了Comparable接口,就意...

foxeye
2016/03/01
75
0

没有更多内容

加载失败,请刷新页面

加载更多

golang-字符串-地址分析

demo package mainimport "fmt"func main() {str := "map.baidu.com"fmt.Println(&str, str)str = str[0:5]fmt.Println(&str, str)str = "abc"fmt.Println(&s......

李琼涛
今天
4
0
Spring Boot WebFlux 增删改查完整实战 demo

03:WebFlux Web CRUD 实践 前言 上一篇基于功能性端点去创建一个简单服务,实现了 Hello 。这一篇用 Spring Boot WebFlux 的注解控制层技术创建一个 CRUD WebFlux 应用,让开发更方便。这里...

泥瓦匠BYSocket
今天
6
0
从0开始学FreeRTOS-(列表与列表项)-3

FreeRTOS列表&列表项的源码解读 第一次看列表与列表项的时候,感觉很像是链表,虽然我自己的链表也不太会,但是就是感觉很像。 在FreeRTOS中,列表与列表项使用得非常多,是FreeRTOS的一个数...

杰杰1号
今天
8
0
Java反射

Java 反射 反射是框架设计的灵魂(使用的前提条件:必须先得到代表的字节码的 Class,Class 类 用于表示.class 文件(字节码)) 一、反射的概述 定义:JAVA 反射机制是在运行状态中,对于任...

zzz1122334
今天
5
0
聊聊nacos的LocalConfigInfoProcessor

序 本文主要研究一下nacos的LocalConfigInfoProcessor LocalConfigInfoProcessor nacos-1.1.3/client/src/main/java/com/alibaba/nacos/client/config/impl/LocalConfigInfoProcessor.java p......

go4it
昨天
9
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部