【问题标题】:How do I check if an Arraylist contains an Object? [duplicate]如何检查 Arraylist 是否包含对象? [复制]
【发布时间】:2021-04-27 05:28:40
【问题描述】:

我知道我可以检查 Arraylist al 是否包含特定的字符串,例如"al.contains("车库")"。

但就我而言,我创建了一个对象。你有什么解决办法吗?它只是行不通。

if(User.users.contains(new User(userTextField.getText().toString(), 
passwordPasswordField.getPassword().toString()))) {
   System.out.println();
}

我像这样创建新用户

    User.users.add(new User("Franz", "1234"));
    User.users.add(new User("Heiko", "thePassoword"));
    User.users.add(new User("Christian", "test"));
    User.users.add(new User("Torsten", "pswdpswd"));

这是我的用户类:

import java.util.ArrayList;

public class User {

   public static ArrayList<User> users = new ArrayList<User>();

   private String name;
   private String password;

   public User(String name, String password) {
      this.name = name;
      this.password = password;
   }

   public String getName() {
      return name;
   }
   public void setName(String name) {
      this.name = name;
   }
   public String getPassword() {
      return password;
   }
   public void setPassword(String password) {
      this.password = password;
   }

}

【问题讨论】:

  • 由于您的列表不是字符串列表,contains("Garage") 将不起作用。如果要查找具有该名称的用户,则必须自己迭代列表。

标签: java arrays class arraylist


【解决方案1】:

contains() 方法使用您的类实现 equals(),它扩展自 Object。要比较两个Users,您应该根据要检查的参数定义一个equals() 方法。

【讨论】:

    猜你喜欢
    • 2012-12-04
    • 2013-04-22
    • 1970-01-01
    • 2012-10-17
    • 1970-01-01
    • 2018-03-08
    • 1970-01-01
    • 2011-03-27
    • 2013-10-13
    相关资源
    最近更新 更多