List之contains方法
contains方法的源码是用equals()比较的,也就是说比较的是地址,所以要在类中重写equals()方法.看代码如何实现的:
User类
package test3;
public class User {
private String name;
private String pswd;
public User(String name, String pswd) {
this.name = name;
this.pswd = pswd;
}
public User() {
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPswd() {
return pswd;
}
public void setPswd(String pswd) {
this.pswd = pswd;
}
@Override
public String toString() {
return "User [name=" + name + ", pswd=" + pswd + "]";
}
public boolean equals(Object obj) {
if(this==obj)//地址相同
return true;
else if(obj!=null&&obj instanceof User) {
User u=(User)obj;
return this.name.equals(u.name)&&this.pswd.equals(u.pswd);
}
else
return false;
}
}
main中:
package test3;
import java.util.ArrayList;
import java.util.Scanner;
/*3.创建一个User类,包含name和password两个成员变量.
* 向一个ArrayList对象添加5个User对象,
* 这5个User对象的成员变量的值分别为name="1",password="a",
* name="2",password="b",
* name="3",password="c",
* name="4",password="d",
* name="5",password="e"。
* 然后创建一个User对象,这个User对象的成员变量为name="3",password="c",
* 然后使用contains方法测试这个对象是否包含在ArrayList对象中。
*
*/
public class Work2 {
public static void main(String[] args) {
ArrayList<User> list = new ArrayList<>();
Scanner sc = new Scanner(System.in);
for(int i=0;i<5;i++){
System.out.println("请输入姓名");
String name = sc.next();
System.out.println("请输入密码");
String pswd = sc.next();
User user = new User(name,pswd);
list.add(user);
}
for(int i=0;i<list.size();i++){
User user = list.get(i);
System.out.println(user);
}
User u = new User("5","e");
Boolean f = list.contains(u);
if(f){
System.out.println("包含");
}else{
System.out.println("不包含");
}
}
}
注:...........................IDE 自带生成 equals()代码*************
链接:https://www.jianshu.com/p/cf8b93bc8860
分类:
[Java]:Gc
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· [.NET]调用本地 Deepseek 模型
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· .NET Core 托管堆内存泄露/CPU异常的常见思路
· PostgreSQL 和 SQL Server 在统计信息维护中的关键差异
· C++代码改造为UTF-8编码问题的总结
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· 清华大学推出第四讲使用 DeepSeek + DeepResearch 让科研像聊天一样简单!
· 实操Deepseek接入个人知识库
· CSnakes vs Python.NET:高效嵌入与灵活互通的跨语言方案对比
· Plotly.NET 一个为 .NET 打造的强大开源交互式图表库
2008-04-29 用汽车售票系统谈数据库结构设计