• ArrayList排序与对象的序列化


    将good队列序列化到文件,并根据日期排序输出;

    public class good implements Serializable 

    代码如下:

    View Code
      1 package com.app;
    2 import java.io.FileInputStream;
    3 import java.io.FileNotFoundException;
    4 import java.io.FileOutputStream;
    5 import java.io.IOException;
    6 import java.io.ObjectInputStream;
    7 import java.io.ObjectOutputStream;
    8 import java.io.Serializable;
    9 import java.util.ArrayList;
    10 import java.util.Collections;
    11 import java.util.Comparator;
    12
    13 public class app {
    14
    15 private static ArrayList<good> goodlist;
    16 /**
    17 * @param args
    18 */
    19 public app(){
    20 goodlist = new ArrayList<good>();
    21 }
    22
    23 public static void main(String[] args) {
    24 // TODO Auto-generated method stub
    25 ObjectOutputStream os = null;
    26 good good1 = new good();
    27 good1.setYear(2001);
    28 good1.setMonth(11);
    29 good1.setDay(2);
    30 good1.setId(0);
    31
    32 ArrayList<good> input = new ArrayList<good>();//ArrayList中存储着对象的地址
    33 input.add(good1);
    34
    35 good good2 = new good();
    36 good2.setYear(2001);
    37 good2.setMonth(10);
    38 good2.setDay(2);
    39 good2.setId(1);
    40 input.add(good2);
    41
    42 good good3 = new good();
    43 good3.setYear(1991);
    44 good3.setMonth(10);
    45 good3.setDay(12);
    46 good3.setId(2);
    47 input.add(good3);
    48
    49 try {
    50 os = new ObjectOutputStream(new FileOutputStream("./good.dat"));
    51 os.writeObject(input);
    52 os.flush();
    53 os.close();
    54
    55 } catch (FileNotFoundException e) {
    56 // TODO Auto-generated catch block
    57 e.printStackTrace();
    58 } catch (IOException e) {
    59 // TODO Auto-generated catch block
    60 e.printStackTrace();
    61 }
    62
    63 try {
    64 ObjectInputStream ois=new ObjectInputStream(new FileInputStream("good.dat"));
    65
    66 //答应good列表
    67 goodlist = (ArrayList<good>)ois.readObject();//序列化中读出的和写入的类型是一样,否额
    68 //出现cast错误
    69
    70 //goodlist根据日期排序
    71 Comparator<good> comparator = new Comparator<good>(){
    72 public int compare(good input1, good input2){
    73 if(input1.getYear() != input2.getYear()){
    74 return input1.getYear() - input2.getYear();
    75 }else{
    76 if(input1.getMonth() != input2.getMonth()){
    77 return input1.getMonth() - input2.getMonth();
    78 }else{
    79 return input1.getDay() - input2.getDay();
    80 }
    81 }
    82 }
    83 };
    84
    85 Collections.sort(goodlist, comparator);
    86
    87 for(int i = 0; i < goodlist.size(); i++){
    88 System.out.println(goodlist.get(i).getId());
    89 System.out.println(goodlist.get(i).getYear());
    90 System.out.println(goodlist.get(i).getMonth());
    91 System.out.println(goodlist.get(i).getDay());
    92 }
    93
    94 } catch (FileNotFoundException e) {
    95 // TODO Auto-generated catch block
    96 e.printStackTrace();
    97 } catch (IOException e) {
    98 // TODO Auto-generated catch block
    99 e.printStackTrace();
    100 } catch (ClassNotFoundException e) {
    101 // TODO Auto-generated catch block
    102 e.printStackTrace();
    103 }
    104 }
    105 }



  • 相关阅读:
    obj,lib,dll,exe
    .net连接access数据库 关键字引起的 语句的语法错误
    XSS攻击与防御
    location.href和location.replace和location.reload的不同(location.replace不记录历史)
    C++中头文件包含问题
    SqlServerExpress2005 自动备份
    在SQL Server 的使用过程中,发现几个很有用,但不太常用
    双机镜像
    浅谈SQL Server identity列的操作方法
    镜像三机
  • 原文地址:https://www.cnblogs.com/fredric/p/2376324.html
Copyright © 2020-2023  润新知