zoukankan      html  css  js  c++  java
  • javabean对象要实现的接口们和要重写的方法们

    在使用list集合的时候,什么也不用。

    原因:list允许存储重复的元素。

    在使用set集合的时候,要重写,equals()方法 和 hashCode() 方法。

    愿意:set集合 不允许存放相同的元素,而默认比较的是两个 对象地址的值,这样,两个对象恒不等。所以 我们需要重写equals()方法,当再次存入的时候用以判定两个对象到底是不是相等。如果两个对象相等了,那么两个 对象必然应该用有相同的hash值,所以在重写equals() 方法的同时,也要重写hashCode()方法。

    如果要使用Collections.sort() 为我们的对象进行排序的话,那么需要 我们javabean类实现comparable接口,重写 compareTo()方法返回一个int值用以标定两者之间的大小关系。

    或者 写一个类实现Comparator接口,重写某方法,传递对象进来,然后 进行比较,这样在调用的时候 要使用 的 方法就不再是 Collections.sort(myList); 而是 Collections.sort(myList,myComparator);

    对于某些数据对象我们想要存储到文件中,那这些对象应该实现Serializable。唉想到一个事儿,如果 我们存一个 集合的话,就是 现在 不在存储 对象而是 存储一个 集合到文件中那么存放和提取的过程又会有哪些差别?

    跟单独写入单个对象略有不同,这次运行结果里面没有,到运行到文件结尾,这句话,也就是写入list集合到文件里面,在取出的时候,自动帮我们弄到了文件结尾。

    package IOPart;
    
    import java.io.EOFException;
    import java.io.FileInputStream;
    import java.io.FileOutputStream;
    import java.io.IOException;
    import java.io.ObjectInputStream;
    import java.io.ObjectOutputStream;
    import java.util.ArrayList;
    import java.util.List;
    
    public class SerializationDemo2 {
        public static void main(String[] args) {
            writePart();
            readPart();
        }
        private static void readPart() {
            ObjectInputStream objectInputStream = null;
            try {
                objectInputStream = new ObjectInputStream(new FileInputStream("f:\tryFile\students2.obj"));
                Object readObject = objectInputStream.readObject();
                List<Student> myList = (List<Student>) readObject;
                for (Student student : myList) {
                    System.out.println(student);
                }
            } catch (EOFException e){
                System.out.println("已经读到文件结尾");
            }catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            } catch (ClassNotFoundException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            } finally {
                if(objectInputStream!=null){
                    try {
                        objectInputStream.close();
                    } catch (IOException e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                    }
                }
            }
        }
    
        private static void writePart() {
            ObjectOutputStream objectOutputStream = null;
            try {
                objectOutputStream  = new ObjectOutputStream(new FileOutputStream("f:\tryFile\students2.obj"));
                List<Student> myList = new ArrayList<Student>();
                Student student1 = new Student("张三", 18, Gender.男, "一班");
                Student student2 = new Student("李飞", 24, Gender.男, "二班");
                myList.add(student1);
                myList.add(student2);
                objectOutputStream.writeObject(myList);
                objectOutputStream.flush();
                
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }finally {
                if(objectOutputStream!=null){
                    try {
                        objectOutputStream.close();
                    } catch (IOException e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                    }
                }
            }
            System.out.println("写出完成");
            
        }
    
    }
  • 相关阅读:
    favorite 单词学习 主要是发音 fa vor it 注意 ri不连读 是自然带出来的r的尾音
    echart 带表格
    正则 小于等于1 小数最多两位
    period 发音 per + iod 没有ri音 (per=round od=hod=way)
    SelectZenEmpty 下拉框 支持 最大长度 超出... vue 组件
    expensive pens 就是 spend 花费 pend 就是 to pay
    reciterdoc 资料库 支持中文搜索了。 vuepresspluginfulltextsearch(用一半)
    react 中 动态添加 class,防止图片 重复加载, 主要是 backgroundimage的二次加载会有新请求,和图片的闪烁
    vscode 格式化 vue 和 js代码 vetur prettier beautify
    sign 单词学习 本质:去分开
  • 原文地址:https://www.cnblogs.com/letben/p/5184717.html
Copyright © 2011-2022 走看看