繁体   English   中英

如何在java中为单个变量分配多种数据类型?

[英]How to assign multiple data types to a single variable in java?

现在我正在创建一个银行应用程序,我不知道如何分配例如字符串名称; 双重平衡; 等到右边一个int PIN;。 将会有许多具有不同 PIN 和分配给它的值的帐户。 我尝试制作许多对象:

    perInfo card1 = new perInfo();
    card1.PIN = 1994;
    card1.balance = 24.68;
    card1.isValid = true;

    perInfo karta2 = new perInfo();
    card2.PIN = 2002;
    card2.balance = 522.2;
    card2.isValid = false;

但我认为要做的工作太多,而且会降低应用程序的性能。 我也试过列个清单

    public bApp(int pin, double balance){
    this.pin = pin;
    this.balance = balance;}

    List<bApp> pass = new ArrayList<>();
        pass.add(new bApp(1994, 568.45));
        pass.add(new bApp(2002, 13866.24));

但它没有用,因为我无法调用 PIN 来检查用户是否提供了正确的 PIN。 数组也不适合这个。

您正在寻找的数据结构是 Map。 看一看 HashMap,您将希望关闭用于查找的任何值。

例如,如果您想通过 pin 查找用户:

Map<Integer, bApp> passes = new HashMap<>();
passes.put(1994, new bApp(1994, 568.45));
passes.put(2002, new bApp(2002, 13866.24));

您可以为此使用 HashMap 并使用 pin 作为键并将对象存储在 HashMap 中。 这将允许您仅使用 pin 访问每张卡。 但是,这不允许重复引脚。 我建议您通过唯一 ID 引用每个帐户,并检查对象本身内的引脚。

HashMap<Integer, Account> accounts = new HashMap<Integer, Account>();
accounts.put(12345678, new Account(1994, 568.4));

然后,您可以使用唯一 ID 获取帐户并检查 PIN 码是否正确。

Account acc = accounts.get(uniqueID);
if(acc.pin == enteredPin){
    //Whatever you need to do
}

我认为只拥有一个不同卡的数组会更简单,每个引脚都设置为数组地址:

bApp[] cards = new bApp[NUMBER_OF_CARDS];
cards[0] = new bApp(0, 568.45);
// ...
cards[2002] = new bApp(2002, 13866.24);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM