获取唯一id';s银行程序java
我正在创建一个银行程序和hava类获取唯一id';s银行程序java,java,class,random,Java,Class,Random,我正在创建一个银行程序和hava类账户(摘要)、储蓄账户和客户(等等)。当我创建一个新的savingsaccount时,我想获得每个帐户的id。我的问题是我不知道如何使id唯一 我还缺什么?如何为客户和帐户使用ArrayList?还有其他建议吗?这对我来说很难,但我正在努力学习和理解 在银行类中,我创建了两个客户c1和c2。然后,我为客户c1创建了两个帐户 public class Bank { public static void main(String[] args) {
账户
(摘要)、储蓄账户
和客户
(等等)。当我创建一个新的savingsaccount
时,我想获得每个帐户的id。我的问题是我不知道如何使id唯一
我还缺什么?如何为客户和帐户使用ArrayList
?还有其他建议吗?这对我来说很难,但我正在努力学习和理解
在银行类中,我创建了两个客户c1和c2。然后,我为客户c1创建了两个帐户
public class Bank {
public static void main(String[] args) {
ArrayList<Customer> customerList = new ArrayList<Customer>();
ArrayList<Account> accountList = new ArrayList<Account>();
Customer c1 = new Customer("John");
Customer c2 = new Customer("Sam");
SavingsAccount a1 = new SavingsAccount(c1);
SavingsAccount a2 = new SavingsAccount(c1);
customerList.add(c1);
customerList.add(c2);
accountList.add(a1);
accountList.add(a2);
}
}
课堂储蓄账户:
public class SavingsAccount extends Account{
public SavingsAccount() {
super();
}
SavingsAccount(Customer person) {
name = person;
id = (int) Math.floor(Math.random()*101); //This won't generate a unique number for each savingsaccount
}
}
当然,数学随机给你们一个随机数,但不是唯一的。。。使用UUID.randomUUID().toString()代码中的操作是获取范围为0到101的伪随机数。这并不能确保这些数字不会重复。确保生成唯一id的一些方法包括
非常感谢。起初,我有一个想法,把1-100之间的数字保存在一个列表中,然后(不知何故)从列表中选择数字。我将试试你的第二条建议。使用简单的密码加密0、1、2、3。。。因为密码是可逆的,所以保证输出对于唯一的输入是唯一的。我不认为3是一个选项,甚至接受(要求)相等的ID用于相等的<代码>客户对象< /代码>:散列函数不需要是内射的,并且经常是非内射的。标准的将无限的输入映射到一组有限的值——想想生日悖论。好的,我将尝试学习UUID.randomUUID().toString()。谢谢你如果你不把你的uid存储在一个表单中(如Vaishak Suresh的发音答案#1),它不一定是一个唯一的id-这不太可能,但也不一定-但是你可以使用一个简单的文本文件而不是数据库,如果你只是为了练习而编写代码的话(在这种情况下UUID也适合你…所以别介意我的提示。。。
public class SavingsAccount extends Account{
public SavingsAccount() {
super();
}
SavingsAccount(Customer person) {
name = person;
id = (int) Math.floor(Math.random()*101); //This won't generate a unique number for each savingsaccount
}
}