package C12_18;import java.util.ArrayList;public class joy {public static void main(String[] args) {show();//重写equals方法,移除集合里面的元素。public static void show() {ArrayList<dog> al = new ArrayList<dog>();al.add(new dog("jj", 12));al.add(new dog("bb", 10));al.add(new dog("cc", 18));//遍历方式1 arr.get(index);for (int i = 0; i < al.size(); i++) {System.out.println(al.get(i).name);}System.out.println("--------");//遍历方式2 把集合转换成数组Object[] array = al.toArray();for (int i = 0; i < array.length; i++) {System.out.println(al.get(i).name);}System.out.println("--------");//遍历方式3 foreach (还有一种用迭代器)al.remove(new dog("cc", 18));for (dog d : al) {System.out.println(d.toString());}}}class dog {String name;int age;public dog(String name, int age) {super();this.name = name;this.age = age;}public dog() {super();}public String toString() {return this.name;}public boolean equals(Object o) {if (o instanceof dog) {dog d = (dog)o;return d.name.equals(this.name) && d.age == this.age;}return false;}//这个只针对自定义引用对象啦。//之前remove方法里面比较的是对象,就自然不相等啦,可是当我重写了equals方法,只要满足age和name相等,就保证可以移除啦。//如果是自定义引用类型, 就注意equals方法是否要重写。
}

Result:

jj
bb
cc
--------
jj
bb
cc
--------
jj
bb


Remove 方法 Else里面的equals方法重写了object里面的equals方法, 比较对象。


但是remove的对象是一个新的学生, 用上面的方法肯定是返回false , 不可移除。所以重写了只要age 和 name 相同便可移除。

LinkedList

package C12_18;import java.util.LinkedList;public class testLink {public static void main(String[] args) {// linklistLinkedList<String> heroName = new LinkedList<String>();heroName.addFirst("ironMan");heroName.addFirst("bitaMan");heroName.addLast("spiderMan");System.out.println(heroName);heroName.removeFirst();System.out.println(heroName);for (String str : heroName) {System.out.println(str);}/** [bitaMan, ironMan, spiderMan]* [ironMan, spiderMan]* */}}/*比较LinkedList(链表) 与 ArrayList(集合)*LinkedList 查询速度慢, 用于插入快(有快捷的添加方法, 每个元素是相连的。)。*ArrayList  查询速度快下标, 用于插入慢。  * *相同:都可遍历, 存储大量数据, 优于数组的快速增删改。  * */

ArrayList的remove方法(重写equals方法) 与LinkedList的常用操作相关推荐

  1. java如何重写onestring,44 java toString 方法 重写equals 方法

    package com.wjl.zy131227; /** * 打印对象 * toString 方法 * @author Administrator * */ public class ToStrin ...

  2. JAVA中重写equals()方法的同时要重写hashcode()方法

    object对象中的 public boolean equals(Object obj),对于任何非空引用值 x 和 y,当且仅当 x 和 y 引用同一个对象时,此方法才返回 true:注意:当此方法 ...

  3. [转载] 向集合中添加自定义类型--建议在自定义类型的时候要重写equals方法

    参考链接: Java重写equals方法 package com.bjpowernode.t01list; import java.util.ArrayList; /* * 向集合中添加自定义类型 * ...

  4. 重写equals方法(未完)

    equals方法是我们日常编程中很常见的方法,Object中对这个方法的解释如下: boolean equals(Object obj) 指示其他某个对象是否与此对象"相等". 查 ...

  5. 【Java基础】重写equals方法详讲

    一.重写equals方法 [Java比较学习]重写equals方法的安全写法 1.重写equals方法的两种方式 这里提供两个比较常见的equals重写方法: ● 用instanceof实现重写equ ...

  6. 面试题:重写equals方法为什么通常会重写hashcode方法?

    最近在面试的时候,当问完了HashMap的数据结构之后,通常会再多问一个问题,就是:重写equals方法时通常为什么也要重写一下hashcode方法? 其实这个问题,本质上又回到HashMap的应用场 ...

  7. 【Java源码解析】如何严谨地重写 equals 方法、getClass 方法与 instanceof 关键词用法比较

    文章目录 如何严谨地重写 equals 方法 1 equals 方法概述 2 String 类中的 equals 方法 3 自定义 equals 方法时出现的问题 4 instanceof 关键词与 ...

  8. java中equals的重写_Java重写equals方法(重点讲解)

    为什么equals()方法要重写? 判断两个对象在逻辑上是否相等,如根据类的成员变量来判断两个类的实例是否相等,而继承Object中的equals方法只能判断两个引用变量是否是同一个对象.这样我们往往 ...

  9. 重写 equals 方法就一定要重写 hashCode 方法?其实有个前提

    作者 l 会点代码的大叔(CodeDaShu) 如果问到 == 和 equals 的区别,相信很多程序员同学都能脱口而出:一个是判断地址,一个是判断内容. 但是如果继续追问:"你重写过 eq ...

最新文章

  1. 【教程】TestComplete测试桌面应用程序教程(四)
  2. Spring Security OAuth2 Demo -- good
  3. MSP430程序库五SPI同步串行通信
  4. CTFshow 命令执行 web69
  5. gvim配置及相关插件安装(过程详细,附图)
  6. 贪心法——区间选点问题
  7. 统计学习方法第15章-奇异值分解SVD
  8. 零基础学python用哪本书好-零基础想要学习Python编程 ,不知道看哪本书?
  9. 支付人必读:一文彻底搞清楚银联和现代支付系统运行过程
  10. 仿钉钉考勤统计圆形控件
  11. vs登录或者添加账户时说脚本错误
  12. PCB电路板EN 45545-2:2020最新标准的测试要求
  13. 模拟信道与数字信道的区别
  14. P2123 皇后游戏
  15. css3中3D变换的景深和灭点
  16. Hexo折腾之改用Valine评论系统 - 更新域名绑定,评论后台管理
  17. 肖博老师高中数学必备知识点总结最全版
  18. 真人测评 腾讯极光4Pro怎么样?跟上一代比值得买吗
  19. Emmy Noether传记资料(2010-01-27 23:37:43)
  20. C++中四舍五入、取整的函数

热门文章

  1. FPGA Verilog实现一个脉冲波形变换
  2. Vue 中使用watch监听$route 无效问题
  3. 编写高效的PyTorch代码技巧(下)
  4. 特征工程之特征缩放特征编码
  5. python color属性_使用Python制作一个带GUI界面的词云自动生成工具(连载七)
  6. java接口构建英雄属性_Python接口类的多继承以及抽象类的单继承
  7. 2019长安大学ACM校赛网络同步赛 L XOR
  8. python 面向对象 新式类和经典类
  9. XCode5添加新建类模板(Cocos2dx Template Class for Scene or Layer)
  10. mysql 批量添加字段前缀_MySQL中批量前缀表的sql语句