我已定义了User类:
public class User
{
public String id;
public String passWord;
public User(String id, String passWord)
{
this.id = id;
this.passWord = passWord;
}
}
然后我创建了一个用户列表:
public static void main(String [] args) {
List<User> users = new ArrayList<User>();
users.add(new User("u1", "abc"));
users.add(new User("u2", "aaa"));
users.add(new User("u3", "bba"));
要使用给定的ID和密码在列表中查找用户,我执行了以下操作:
Scanner input = new Scanner(System.in);
System.out.print("User: ");
String user = input.next();
System.out.print("Password: ");
String pass = input.next();
int N = -1;
for (int n = 0; n < medicos.size(); n++)
{
if (user.equals(users.get(n).id) && pass.equals(users.get(n).passWord))
{
N = n;
}
}
是否有更简单的方法来获取包含给定ID和密码的列表元素,例如使用类似于包含的方法?
答案 0 :(得分:2)
使用HashMap
。如果需要,您仍然可以使用ArrayList
User
,但您也可以将用户名和密码添加到HashMap
,其中用户名为密钥,密码为值。所以,举个例子,你可以这样做:
Map<String, String> users = new HashMap<>();
users.put("u1", "abc");
users.put("u2", "aaa");
users.put("u3", "bba");
Scanner input = new Scanner(System.in);
System.out.print("User: ");
String user = input.next();
System.out.print("Password: ");
String pass = input.next();
String pword;
if (users.containsKey(user)) {
pword = users.get(user);
}
现在,变量pword
包含名为&#34; user&#34;的用户的密码。 (从Scanner
获得。)