ArrayList的contains方法

五子棋ai:极大极小搜索和α-β剪枝算法的思想和实现(qt和c++)(一)引言和界面设计 引言 alphaGo击败围棋冠军李世石的新闻让我对棋类博弈产生了浓厚的兴趣,无奈本人不会围棋,但算是一个五子棋业余爱好者,于是乎希望通过实现一个五子棋ai来了解相关算法和知识。 五子棋在英文中又称Gobang,five-in-row,还有两个称呼:gomoku和renju(连珠)。我来简要介绍一下区别。由于五子棋已经被机器严格证明了是一种**“不公平”的游戏,先手黑子是绝对占优的,并且先手有必胜*... 阅读详情

今天在用ArrayList类的cantains方法时遇到了问题,我写了一个存放User类的ArrayList ,放入一个user对象, 但在调用list.contains(user1)时总是返回false(此处user1与user字段值完全相同)。 去看了下ArrayList的源码: 

public boolean contains(Object o) {
	return indexOf(o) >= 0;
    }


 public int indexOf(Object o) {
	if (o == null) {
	    for (int i = 0; i < size; i++)
		if (elementData[i]==null)
		    return i;
	} else {
	    for (int i = 0; i < size; i++)
		if (o.equals(elementData[i]))
		    return i;
	}
	return -1;
    }
很明显,如果在contains()方法传入的参数是null,则直接在list找有没有null元素,如果传入的参数不是null,则contains函数用调用equals方法,把传入的参数与list中每个元素做比较。此处Object的equals默认的是比较的是两个对象的地址。当然就不相等啦。 

      解决方案,在User中重写equals方法,实现比较两个对象的字段相等的逻辑

public boolean equals(Object obj) {
		if (obj instanceof User) {
			User u = (User) obj;
			return this.username.equals(u.username)
					&& this.password.equals(password);
		}
		return super.equals(obj);




JS逆向-Protobuf逆向解析 目录一、什么是Protobuf二、Protobuf环境配置三、Protobuf实例序列化与反序列化四、逆向解析 Protobuf案例1、python序列化2、python反序列化 一、什么是Protobuf 1、protocol buffers介绍:是一种语言无关、平台无关、可扩展的序列化结构数据的方法。严格说不算是加密,只能是叫序列化结构数据,让可读变为疑似的乱码,那反序列化即让疑似的乱码变为可读 2、protobuf使用流程的前提是有一个.proto文件,对逆向而言就是还原.proto文件,选择 阅读详情

相关推荐

c#窗体应用(.NET Framework)项目对Yaml文件进行写入与读取,Yaml数据转换成json

用到的技术与版本准备工作Yaml数据在C#中进行定义对Yaml文件的读取与写入代码的添加窗体控件控制操作写入数据到Yaml文件读取Yaml文件数据Yaml数据转换成json改进——对yaml文件读取时根据yaml文件中的键进行获取,对c#中怎么取名字无关yaml文件中多个数据读取遇到的问题总结的小点参考的文章在对Yaml文件进行读取前,先将Yaml文件中的数据结构在c#中进行定义,以便后面更好的读取。这里对这四个类型进行举例(这里为了想看看这四个类型到Yaml文件的格式是什么样子的)

永远年轻 1587

初级程序员 - List.contains()的问题

判断List中是否存在指定对象时,可用List.contains()方法,但是在使用不同内存地址的对象时,判断错误的问题。    contains()方法内是使用equals方法。下面为源码: public boolean contains(Object o) { return indexOf(o) >= 0; } public int inde

u010579316的博客 1254

19-5 ACC 自适应巡航控制系统需求

本专题由深圳季连AIgraphX李博及团队出品,主要讲解ACC自适应巡航控制系统的开发与仿真测试。具体说来,包括ACC标准/法规分析、系统需求、系统架构、软件需求、软件架构、算法建模、验证场景分析、仿真实验搭建等内容。 本节主要讲ACC系统需求。

AIgraphX 1090

初始化集合对象,通过contains判断是否为null

public static void main(String[] args) {   ArrayList list = new ArrayList(); //jvm已经为list声明了内存空间 只是其中有0个元素   System.out.println(list.contains(null)); } 当通过new关键字完成初始化时,虚拟机已经为声明的list对象开辟了内存...

weixin_30446197的博客 1431

openEuler 20.03 LTS面向RK3399移植系列(3)—openEuler 20.03 LTS面向Firefly RK3399的第一个版本(Linux kernel 4.4)

任务动机:完成openEuler面向RK3399开发板的移植。 任务描述:按照固件烧写准备,固件获取,固件打包和烧写的步骤实现openEuler面向RK3399开发板的移植,整理过程和相关命令记录到文档。 1. 制作openEuler的rootfs.img 1.1 开发环境 树莓派--openEuler系统 openEuler 20.03 LTS 的内测版本镜像,下载。 1.2 具体操作 1.2.1 ssh远程连接树莓派 确定树莓派IP ssh连接 1.2.2 制作rootfs.img

火种源码的机器人技术专栏 2369

WRF后处理避坑指南:从namelist配置到降水计算的全流程解析

本文提供了一份详尽的WRF模式后处理避坑指南,涵盖从理解wrfout文件结构、核心变量解析到累计降水计算与专业气象图绘制的全流程。重点解析了RAINC与RAINNC的正确处理方法,并分享了使用wrf-python库高效绘制位势高度叠加风场图、累计降水图等专业图表的实战技巧与代码,旨在帮助用户规避常见错误,提升后处理效率与图表质量。

weixin_29200485的博客 362

记录Java中List的contains()方法的使用

确保目标对象正确实现了equals()方法(尤其是自定义对象)。对于大型列表,注意性能问题。在多线程环境中,确保列表是线程安全的。

qq_29781527的博客 3999

AWD线下攻防赛总结

在本地组策略编辑器里面,依次展开计算机配置—>管理模板—>Windows组件—>远程桌面服务—>远程桌面会话主机—>连接—>限制连接的数量。8.Web目录环境查找相关可疑文件:jpg/png/rar,属性、解压。进程线程:netstat / ps -aux/netstat -apt。4.查看/etc/init.d/rc.local中启动服务有无异常。1.不使用默认口令,修改成复杂的,并确保和web环境连接。5.使用脚本开启进程监控、目录监控、流量监控。文件操作监控.exe/御剑文件监控.exe。

XuJL89的博客 630

详述ArrayList类contains方法和remove方法

contains方法 我们以以下这个例子分析ArrayList类contains方法;三段代码中的后面两小段代码分别是 contains 方法的源码和 contains 方法中 indexOf 方法的源码; public class Test { public static void main(String[] args) { ArrayList<String> list ...

qq_44971038的博客 525

PubMedBERT:生物医学NLP中的垂直领域预训练实践与性能突破

本文深入探讨了PubMedBERT在生物医学NLP领域的应用与性能突破。作为专为生物医学文本设计的预训练模型,PubMedBERT通过全词掩码策略和BLURB基准测试,显著提升了命名实体识别、关系抽取等任务的准确率。文章还提供了PubMedBERT的实战应用案例和代码示例,展示了其在医学文献检索和电子病历结构化中的卓越表现。

kite3的博客 285

CVE-2017-7921漏洞深度剖析:从身份验证绕过到实战复现与防御

身份验证是Web应用安全的核心防线,其逻辑缺陷可能导致严重的未授权访问。身份验证绕过漏洞的原理在于,应用程序对特定请求路径或API接口的访问控制策略存在疏漏,未能执行有效的会话或令牌校验。这类漏洞的技术价值在于,攻击者无需凭证即可直接访问受保护的后端资源,从而获取敏感信息或执行未授权操作,对系统机密性、完整性构成直接威胁。在物联网和安防监控领域,大量网络摄像头、录像机等设备暴露于公网,其Web管理界面便成为常见攻击面。本文聚焦于安防设备中一个经典的CVE-2017-7921身份验证绕过漏洞,通过剖析其技术原

WGH100817的博客 471

详述ArrayList类中的contains方法

详述ArrayList类中的contains方法 一、contains方法的参数是String类型 import java.util.ArrayList; public class Test { public static void main(String[] args) { ArrayList<String> nameList = new ArrayList<&g...

weixin_43964847的博客 2119

【RV1126/RV1109学习笔记】#基础篇#(2)基础入门使用

一、调试方式 1、串口调试 2、ADB调试 3、网络调试 二、基础外设使用 音频使用(aplay,arecord,amixer) 三、WIFI连接 四、屏幕背光控制

丨晋丨 1862

详述ArrayList的contains方法

以ArrayList的contains方法为例,有以下三种类型: 形式一: 查找的字符不为null时,看如下代码: import java.util.ArrayList; public class Work { public static void main(String[] args) { ArrayList<String> list = new ArrayList&lt...

徐冰的博客 1282

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

详述ArrayList类contains方法

ArrayList中contains(Object o)方法一、源码分析:二、对于ArrayList后不同泛型的分析:(一)泛型String类型(二)泛型为包装类(三)泛型为类类型: 一、源码分析: public boolean contains(Object o) { return indexOf(o) >= 0; } 分析: 将contains()括号中的元素上转型为...

weixin_44630656的博客 1056

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

彻底搞懂ArrayList的contains方法

ArrayList的contains方法 用途 用于判断在ArrayList中是否包含目标元素 原理 调用indexOf(Object o)方法 public boolean contains(Object o) { return indexOf(o) >= 0; } indexOf(Object o)方法中调用传入Object对象的equals方法进行比较 public int indexOf(Object o) { // 传入的Object是null, 则在集合中

qq_38685072的博客 3967

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

Java ArrayList contains()方法及示例

ArrayList类contains()方法 (ArrayList Class contains() method) contains() method is available in java.util package. contains()方法在java.util包中可用。 contains() method is used to check whether this Arraylist c...

cumt951045的博客 782

ArrayList contains方法

//ArrayList contains方法 ArrayList<String> list = new ArrayList<String>(); list.add("Jim"); Object object = "Jim";//上转型对象 System.out.println(list.contains(object)); ----------------------------------------------------------------.

qq_43527694的博客 488

慎用ArrayList的contains方法,使用HashSet的contains方法代替

ArrayList的contains到了十万级别,就基本上很慢了,HashSet到了百万级的数据也特别快,而且是快得特别多。 ArrayList的contains方法与HashSet的contains方法的区别? ​ ArrayList的contains方法会直接判断元素的内存地址是否相同,HashSet的contains方法会先判断元素的hashCode是否相同,如果不同则返回false,如果相同再用equals判断,因此HashSet的contains方法的方法效率会更高。 ArrayList..

qq_49432338的博客 1290

java ArrayList的contains方法问题

arrayList的contains方法比较是否包含元素的时候,调用的是 对象的equals方法,也就是说如果对象没有重写equals方法,那么其实比较的事堆中的地址是否相等了。 下面是 contains方法的源码。 public boolean contains(Object o) {        return indexOf(o) >= 0;        }  

awe5566的专栏 9953

详述ArrayList类中contains方法

源码: contains: public boolean contains(Object o) { return indexOf(o) >= 0; } indexOf: public int indexOf(Object o) { if (o == null) { for (int i = 0; i < size; i++) if (elementData[i]==nu...

syhfly2333的博客 171

ArrayList中的contains方法

源码 ArrayList类中contains方法源码 public boolean contains(Object o) { return indexOf(o) >= 0; } indexOF方法的源码 public int indexOf(Object o) { if (o == null) { for (int i = 0; i &...

深海潜蛟的博客 368

Java:ArrayList中的contains方法

String: 首先看一下调用效果: public static void main(String[] args) { ArrayList<String> list = new ArrayList<String>() ; list.add("Tom"); System.out.println(list.contains("To...

bravery__的博客 1400
上一篇: 类继承时方法覆盖问题。(static方法不能被”覆盖“)
下一篇: 要搭建一个WEB APP能不能只用一门统一的语言?
nothing0318
博客等级 码龄16年 11粉丝 30原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值