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();
            }
    
  • 相关阅读:
    js this
    python词云的制作方法
    flask表单标签
    scrapy使用PhantomJS爬取数据
    flask连接sqlalchemy数据库,实现简单的登录跳转功能
    useful tools and website
    sqlalchemy精华版
    flask连接数据库mysql+SQLAlchemy
    flask框架get post方式
    flask基础知识
  • 原文地址:https://www.cnblogs.com/lsykk/p/14856657.html
Copyright © 2011-2022 走看看