gpt4 book ai didi

java - 获取 HashMap 中属于一个对象的所有键

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:21:17 26 4
gpt4 key购买 nike

下面是我的用户类。我还有一个卡类,它是单一货币卡类和多卡货币类的父类。

我对编码还很陌生,在理解某些概念时遇到了困难。如果用户名和密码匹配,我需要做的是归还用户拥有的卡。这是在 getCards 方法中。在此之后,如果用户名和密码匹配,我需要将卡添加到 Hashmap 列表中。当我在 HashMap 概念上苦苦挣扎时,任何真正有用的提示或其他网站。


public class User {
String username;
String password;
User user;

HashMap<String,Card> userHash = new HashMap <String, Card>(); //key is the cardID

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

public String toString()
{
return "User ---------" + "\n" + "Username: " + username + "\n" + "Password: " + password;
}

public String getUsername()
{
return username;
}

public String getPassword()
{
return password;
}

public boolean userValidate(String username, String password)
{
if (username.contains(user.getUsername()) && password.contains(user.getPassword()))
{
System.out.println("User accepted");
return true;
}else
System.out.println("Access denied");
return false;
}

public HashMap<String, Card> getCards(String username, String password)
{
for(String value : userHash.keySet())
if (user.userValidate(username, password) == true)
{
//return user's cards
return true;
}else
return null;
return null;

}


public boolean addCard(Card card, String username, String password)
{
if(user.userValidate(username, password) == true)
{
user.getCards(username, password);

}
return false;
}

The card which belongs to the user

最佳答案

这是我的设计理念。

在这种情况下,用户类可以有很多张卡片,每张卡片都有一个 id。每次创建用户时都必须保存验证检查。

userValidate 方法可以使用自己的值检查参数,然后将其保存到 isvalid 变量( boolean 值)。

public boolean userValidate(String username, String password)
{
if (username.contains(getUsername()) && password.contains(getPassword()))
{
System.out.println("User accepted");
return isvalid = true;
}else
System.out.println("Access denied");
return isvalid = false;
}

getCards 方法很简单,因为它检查 isvalid 是否为真。

public HashMap<String, Card> getCards() {
if (isvalid) {
// return user's cards
return userHash;
} else
return null;

}

addCard 方法,如果用户验证成功或失败,我可以只保存带有卡 ID 的卡...

public boolean addCard(Card card, String username, String password)
{
if(userValidate(username, password))
{
userHash.put(card.getCardId(), card);
return true;

}
return false;
}

所以,把所有这些代码放在一起。

导入java.util.HashMap;

class Card 
{
private String cardId;

public String getCardId() {
return cardId;
}

public void setCardId(String cardId) {
this.cardId = cardId;
}

}

public class User {
private String username;
private String password;
private boolean isvalid;


HashMap<String, Card> userHash = new HashMap<String, Card>(); // key is the
// cardID

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

}


public boolean userValidate(String username, String password)
{
if (username.contains(getUsername()) && password.contains(getPassword()))
{
System.out.println("User accepted");
return isvalid = true;
}else
System.out.println("Access denied");
return isvalid = false;
}

public String toString() {
return "User ---------" + "\n" + "Username: " + username + "\n" + "Password: " + password;
}

public String getUsername() {
return username;
}

public String getPassword() {
return password;
}

public HashMap<String, Card> getCards() {
if (isvalid) {
// return user's cards
return userHash;
} else
return null;

}

public boolean addCard(Card card, String username, String password)
{
if(userValidate(username, password))
{
userHash.put(card.getCardId(), card);
return true;

}
return false;
}


}

关于java - 获取 HashMap 中属于一个对象的所有键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55761771/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com