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("不包含");
        }
    }
}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,759评论 18 399
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 173,132评论 25 708
  • (一)Java部分 1、列举出JAVA中6个比较常用的包【天威诚信面试题】 【参考答案】 java.lang;ja...
    独云阅读 7,141评论 0 62
  • “林中漫步”这部电影是这个周利用周五下午的时间看完的。和之前看的一部的题材是差不多的,都是关于徒步题材。 电影讲...
    isabellaLilove阅读 292评论 0 0
  • 我这人做事情动作很慢,慢的让人着急,常常是你在那边急,我在这边沉浸在自己的世界无比地享受着。 不过,真混熟了,就能...
    美生活阅读 485评论 6 2