在哈希图中获取属于一个对象的所有键

时间:2019-04-19 12:21:27

标签: java

以下是我的用户类别。我还有一个Card类,它是Single Currency Card类和Multi Card Currency类的父类。

我对编码还很陌生,很难理解一些概念。我需要做的是,如果用户名和密码匹配,则归还用户拥有的卡。这在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

2 个答案:

答案 0 :(得分:0)

您可以遍历地图并将所有卡添加到列表中:

order by

您正在寻找什么吗?

或者如果您已经了解流:

x = sym.Symbol('x')

def f(x):
    return (x**2*sym.exp(x))/((sym.exp(x)-1)**2)

print(sym.integrate(f(x),x))

答案 1 :(得分:0)

这是我的设计理念。

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

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

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;
    }


}