zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    C#三元运算符
    WIN系统查询版本
    C# switch 语句
    C#反编译
    AssemblyInfo.cs 文件信息
    win系统如何在桌面显示我的电脑
    MVC传值前台
    js去除html标记
    打开页面跳转到区域下的控制器
    Hive常用操作之数据导入导出
  • 原文地址:https://www.cnblogs.com/smallfa/p/10790053.html
Copyright © 2011-2022 走看看