zoukankan      html  css  js  c++  java
  • [软件构造] lab2相关

    重写equals

    本次实验使用到list的contains和indexOf方法,而indexOf()中使用了equals来进行比较。
    由于我们要对自定义的Edge类进行indexOf,所以需要在Edge重写equals。
    网上搜素了一下,重新equals的主要构成如下:

    1. 判断对象非空
    2. 校验对象是否是目标实例
    3. 为保证程序鲁棒性,强行做类型转换
    4. 对象中的每个参数做条件说明
      对于这次实验,在Edge重写equals如下
        @Override
        public boolean equals(Object obj) {
            if (obj == null) return false;   //1. 判断对象非空
            if (obj instanceof Edge){        //2. 校验对象是否是目标实例
                Edge e = (Edge)obj;          //3. 强行做类型转换
                return (this.from == e.from) && (this.to == e.to);//4. 对象中的每个参数做条件说明
            }
            return false;
        }
    

    (如果是要改写HashMap、HashSet、HashTable中的equals,似乎同时也要改写hashCode。

    list,遍历时删除元素

    不能直接使用list.remove

            Iterator<Edge> it = edges.iterator();
            while (it.hasNext()) {
                Edge e = it.next();
                if (e.to() == vertex || e.from() == vertex) it.remove();
            }
    
  • 相关阅读:
    正则表达式的学习笔记
    apply()的使用
    for循环性能测试
    js基础复习~Array对象
    判断值是否为undefined
    layui 单选框取消选中
    layui 表单验证
    火狐浏览器下,表头边框无效
    css3 宽度百分比减去固定宽度 无效问题
    javaScript中的 call 和 apply
  • 原文地址:https://www.cnblogs.com/lsykk/p/14856657.html
Copyright © 2011-2022 走看看