有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

对象如何在java中将多个数据类型分配给单个变量?

现在我正在创建一个bankApp,我不知道如何分配,例如字符串名称;双平衡;等连接到右一个int引脚;。将有许多帐户具有不同的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。阵列也不适合这种情况


共 (3) 个答案

  1. # 1 楼答案

    您要查找的数据结构是一个地图。看一看HashMap,你会想去掉你用来查找的任何值

    例如,如果要按pin查找用户:

    Map<Integer, bApp> passes = new HashMap<>();
    passes.put(1994, new bApp(1994, 568.45));
    passes.put(2002, new bApp(2002, 13866.24));
    
  2. # 2 楼答案

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

    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
    }
    
  3. # 3 楼答案

    我认为只需要一个不同卡的阵列就更简单了,每个pin都被设置为阵列地址:

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