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

 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  查询速度快下标, 用于插入慢。  * *相同:都可遍历, 存储大量数据, 优于数组的快速增删改。  * */

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/421138.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

android学习日记13--数据存储之ContentProvide

3、ContentProvider  数据在Android当中是私有的&#xff0c;当然这些数据包括文件数据和数据库数据以及一些其他类型的数据。ContentProvider实现多应用程序间的数据共享类一般利用ContentProvider为需要共享的数据定义一个URI(统一资源定位符)然后其他程序通过Context获得C…

cin,cin.get(),getline()

我势必扫清我对c的各种疑惑&#xff0c;重拾csdn水文之任 结论&#xff1a;cin在获得需要接受的东西之前&#xff0c;对缓冲区里的空格和换行符不会理睬(但是会把它们从缓冲区删去)&#xff0c;但如果达到了可以结束接受的时候&#xff0c;空格和换行符都会让cin不再接 收,并且…

Java 字节和字符流的读写+Buffered

一个关于IO流的导图 IO流字节的读写&#xff0c;实现复制 import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException;public class TestCopy {public static void main(String[] args) throws IOException {copyT…

1070. 结绳(25)

1070. 结绳(25) 时间限制200 ms内存限制65536 kB代码长度限制8000 B判题程序Standard作者CHEN, Yue给定一段一段的绳子&#xff0c;你需要把它们串成一条绳。每次串连的时候&#xff0c;是把两段绳子对折&#xff0c;再如下图所示套接在一起。这样得到的绳子又被当成是另一段绳…

Java预编译和批处理

预编译 package csdn.prepare.take;import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException;public class TestCompiling {public static void main(String[] args) {prep…

Java模拟事务Demo

Java操作Oracle事务&#xff0c;以转账为例。 转账之前 package translate.commit;import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException;public class CommitRollback…

设计模式4-创建型模式-Prototype模式

意图&#xff1a;用原型实例指定创建对象的种类&#xff0c;并且通过拷贝这些原型对象创建新的对象。 原型模式的结构比较简单&#xff0c;在使用C实现该模式时重点要注意deep copy和shallow copy的问题。prototype模式在实际使用的过程中&#xff0c;可以通过增加一个原型管理…

Android--通知之Notification

前言 之前一篇博客讲了Android下使用Toast的方式提示消息。这篇博客讲解一下在Android中使用Notification提示消息给用户&#xff0c;Notification是一种具有全局效果的通知&#xff0c;程序一般通过NotificationManager服务来发送Notification。在本篇博客中&#xff0c;将介绍…

UDP协议下的DatagramSocket和DatagramPacket

1&#xff0c;UDP协议? 面向无连接&#xff0c;数据不安全&#xff0c;但速度快。不区分客户端与服务端。 2&#xff0c;实现通信&#xff1f; (三个达到) IP 简单说就是你电脑地址。端口 你电脑里面软件的地址。协议 如何进行通讯。 DatagramSocket 用来发送和接收数据报包的…

使用Log4J监控系统日志邮件警报

使用Log4J监控系统日志邮件警报 前言 在系统上线后&#xff0c;有时候遇到系统故障&#xff0c;这时候就可以登录服务器查看系统日志来排查问题。但是需要登录服务器&#xff0c;下载查找相关异常日志比较麻烦。而且没有监控的话&#xff0c;也无法实时了解到系统是否正常运行。…

TCP协议下 Socket 与 ServerSocket

不多bb. package c_20_1_5;import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import java.net.InetAddress; import java.net.ServerSocket; import java.net.Socke…

Autodesk的照片建模云服务—Autodesk ReCap 360 photo

现实捕捉技术方兴未艾&#xff0c;简单的讲现实捕捉技术就是把现实中的现状信息数字化到计算机中以便做进一步的处理。对于不同的应用目的会有不同的捕捉设备&#xff0c;工程或传媒娱乐行业中经常用到的肯定就是三维模型了。那如何得到三维模型呢&#xff1f;我们有多种途径和…

Java多线程,锁(synchronize),饿汉式单例线程,等待处理机制

一&#xff0c;礼让和守护线程 package com.much.hard;public class TestYieldProtect {public static void main(String[] args) {Yield1 y1 new Yield1();y1.setName("A");Yield2 y2 new Yield2();y2.setName("B");//y1.start();//y2.start();Daemon1…

升级ADT22.6后,Android模拟器无法创建

这 两天&#xff0c;在社区里看到有小伙伴们反应&#xff0c;自己在Eclipse下无法创建Android模拟器的问题。起初&#xff0c;自己也没太在意&#xff0c;我一直使用的是 Genymotion模拟器。然后&#xff0c;问题不解决&#xff0c;总有那么一天会让自己碰到的。这不&#xff0…

原来js的parseInt函数还可以这样用

QQpc端登录账号还可以这样玩&#xff01;&#xff01;&#xff01; 图片上来。 wow&#xff0c;我惊呆了。 居然可以登录进出&#xff1f;&#xff01; 都知道&#xff0c;登录会验证账号是整数&#xff0c;文本框输入的是字符串&#xff0c;会把字符串转成整数&#xff0c; 而…

实验1 熟悉实验环境

本操作系统实验的硬件环境是IA-32(x86)架构的PC机&#xff08;就是你现在正在使用的计算机&#xff09;&#xff0c;主要软件环境是Bochs gcc 你最喜欢的编辑器/IDE 你最喜欢的操作系统 Linux 0.11源代码。实验的基本流程是根据实验要求编写应用程序、修改Linux 0.11的源代…

前端学习(1032):jquery插件-瀑布流

1网址打开 下载插件 2引入css和js和html 3修改图片