zoukankan      html  css  js  c++  java
  • 文件中有姓名,分数两列,读取并按分数排序输出

    20150227:

    文件内容如下:

    张三,77
    李四,89
    王二,69
    白龙,59
    和尚,61
    八戒,90
    悟空,91
    唐僧,0

    (最不需要思考的)代码如下:

     1 public static void main(String[] args) {
     2         //read
     3         File datas = new File("src\test\test\records.txt");
     4         BufferedReader reader =null;
     5         //sort list 
     6         List<Map<String,String>> sorted = new ArrayList<Map<String,String>>();
     7         try {
     8             reader = new BufferedReader(new FileReader(datas));
     9             String tempLine = null;
    10             tempLine = reader.readLine();
    11             while (tempLine!=null) {
    12                 String[] recs = tempLine.split(",");
    13                 Map<String,String> map = new HashMap<String,String>();
    14                 map.put("name", recs[0]);
    15                 map.put("record", recs[1]);
    16                 //comparing... and save
    17                 if (sorted!=null&&sorted.size()>0) {
    18                     //从大到小进行比较
    19                     int len = sorted.size();
    20                     for (int i = 0 ; i < len ; i++) {
    21                         System.out.println();
    22                         Map<String,String> tmp_c = sorted.get(i);
    23                         int bnum = compare(map.get("record"),tmp_c.get("record"));
    24                         if ( bnum > 0 || bnum == 0) {
    25                             //如果当前读取的值大于或等于序列为i的值 则将该值放到序列i上
    26                             sorted.add(i, map);
    27                             break;
    28                         } else if (i == (len-1)) {
    29                             //当当前比较到最后一个已存值时,将该数据直接增加到排序列表 最后
    30                             sorted.add(map);
    31                         }
    32                     }
    33                 } else {
    34                     //当列表为空时 直接增加数据
    35                     sorted.add(map);
    36                 }
    37                 //read next line
    38                 tempLine = reader.readLine();
    39             }
    40         } catch (Exception e) {
    41             e.printStackTrace();
    42             try {
    43                 reader.close();
    44             } catch (IOException io) {
    45             }
    46             return ;
    47         }
    48         //print
    49         for (Map<String,String> m:sorted) {
    50             System.out.println(m.get("name")+ "," + m.get("record"));
    51         }
    52     }
    53 
    54     private static int compare(String param1, String param2) {
    55         //比较传入值的数值大小,返回参数1对应数值 减去 参数2对应数值的值
    56         return Integer.parseInt(param1) - Integer.parseInt(param2);
    57     }
    View Code
  • 相关阅读:
    Func<T, TResult> 委托的由来和调用和好处(为了高大上,为了白富美)
    $(function(){})和jQuery(function(){})
    把一个类(或者Object)转换成字典
    MVC 控制器向View传值的三种方法
    @html.ActionLink的几种参数格式
    你给老板谈工资,老板给你谈发展.之后发生的事...
    2015-11-5 关于编译的听课笔记
    2015-10-29 韦东山OK6410 第一天课程笔记
    2015-10-26 逻辑运算符使用分析
    2015-10-26 一些位运算符 课程笔记
  • 原文地址:https://www.cnblogs.com/justbeginning/p/4303824.html
Copyright © 2011-2022 走看看