学生信息的添加与查询(map,set,list)

原创 2018年04月17日 15:51:53

Problem Description
设计一个学生添加和查询的系统,从键盘读入学生的数据,然后再从屏幕显示出来。
Input
第一行有2个整数N和M,其中:N——学生数量,M——学生属性数量;
第二行有M个字符串,表示学生的属性名称,其中第1个属性id表示关键字;其中各字段属性的数据类型是确定的。
接下来有N行M列数据,分别表示学生各种属性的值,关键字相同的记录代表一个学生(后来读入的信息覆盖前面读入数据)
Output
输出所有学生的属性及数据。(每行的列数据之间用‘\t’进行分隔)
Sample Input
5 4
id name birthday score
0001 Mike 1990-05-20 98.5
0002 John 1992-05-20 67
0003 Hill 1994-05-02 36.5
0004 Christ 1996-05-20 86.5
0001 Jack 1998-05-20 96
Sample Output
id:0001 name:Jack birthday:1998_5_20 score:96.0
id:0002 name:John birthday:1992_5_20 score:67.0
id:0003 name:Hill birthday:1994_5_2 score:36.5
id:0004 name:Christ birthday:1996_5_20 score:86.5

package pp;

import java.text.ParseException;

import java.text.SimpleDateFormat;
import java.util.*;

class Changedate{//转换日期
    public String datecon(String str) throws ParseException {
        SimpleDateFormat dfs1 = new SimpleDateFormat("yyyy-MM-dd");
        SimpleDateFormat dfs2 = new SimpleDateFormat("yyyy_M_d");//格式
        return dfs2.format(dfs1.parse(str));//将dfs1日期先转变为数,再按sdf2的格式进行转换
    }
}

class Student{
    String name;
    String date;
    float score;

    public String getName() {//可以快速生成
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public String getDate() {
        return date;
    }
    public void setDate(String date) {
        this.date = date;
    }
    public float getScore() {
        return score;
    }
    public void setScore(float score) {
        this.score = score;
    }


    public Student(String name, String date, float score) {
        super();
        this.name = name;
        this.date = date;
        this.score = score;
    }


    Changedate d = new Changedate();

    public String toString() {
        try {
            return "name:" + name + "\tbirthday:" + d.datecon(date) + "\tscore:" + String.format("%.1f", score);//注意这种形式可以进行格式化输出小数点
        } catch (ParseException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        return date;//??
    }
}
public class Main {

    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();//学生数量
        int m = sc.nextInt();//字段数量

        sc.nextLine();//回车
        sc.nextLine();//不存第二行的属性,承接回车

        Map<String, Student> map = new HashMap<String, Student>();

        for(int i = 0; i < n; i++) {
            String id = sc.next();
            Student S = new Student(sc.next(), sc.next(), sc.nextFloat());
            map.put(id, S);//key为id,学生对象为value
        }

        Set<String> keySet = map.keySet();//map的取出

        List<String> list = new ArrayList<String>(keySet);//转化为list
        //进行排序
        Collections.sort(list, new Comparator<String>() {
            public int compare(String o1, String o2) {
                return o1.compareTo(o2);//看是否相等
            }
        });

        for(int i = 0; i < list.size(); i++) {
            System.out.print("id:" + list.get(i) + "\t");//id
            System.out.println(map.get(list.get(i)));//id的值
        }
    }
}
版权声明:正在学习中,有错误欢迎指出。感谢比❤❤~ https://blog.csdn.net/gx17864373822/article/details/79976025

java集合框架

  • 2011年12月26日 17:24
  • 3KB
  • 下载

Hibernate 的Set、List、Map集合操作(添加,修改,查询)

Hibernate 的Set、List、Map集合操作(添加,修改,查询)
  • starjuly
  • starjuly
  • 2016-08-24 23:43:42
  • 1762

java collections framework.ppt

  • 2011年11月23日 22:40
  • 877KB
  • 下载

list map set区别

  • 2018年01月05日 10:38
  • 20KB
  • 下载

学生信息的添加与查询

学生信息的添加与查询 Time Limit: 1000MS Memory Limit: 65536KB Submit Statistic Problem Description ...
  • yan17864307817
  • yan17864307817
  • 2017-04-14 21:29:02
  • 522

hibernate 中的 set map list 代码

  • 2009年06月28日 10:31
  • 34KB
  • 下载

List,set,Map 的用法和区别

  • 2012年07月31日 14:35
  • 20KB
  • 下载

【Java】集合(List、Set、Map)遍历、删除、比较元素时的小陷阱

阅读目录 一、漏网之鱼-for循环递增下标方式遍历集合,并删除元素二、ConcurrentModificationException异常-Iterator遍历集合过程中用其他手段(或其他线程)操作元...
  • azhegps
  • azhegps
  • 2016-10-23 16:46:44
  • 2160

学生信息的添加与查询(java集合框架应用)

Home ContestsProblemsRanklistStatus 15110506055Logout 学生信息的添加与查询 Time Limi...
  • jinzk123
  • jinzk123
  • 2017-04-18 22:00:19
  • 794

java中Map,List与Set的区别

Set,List,Map的区别 java集合的主要分为三种类型: Set(集)List(列表)Map(映射) 要深入理解集合首先要了解下我们熟悉的数组: 数组是大小固定的,并且同一个数组只能存放...
  • SpeedMe
  • SpeedMe
  • 2014-03-28 15:51:58
  • 206146
收藏助手
不良信息举报
您举报文章:学生信息的添加与查询(map,set,list)
举报原因:
原因补充:

(最多只允许输入30个字)