【发布时间】:2021-02-21 03:39:32
【问题描述】:
我目前有一个类负责生成唯一序列号,提供参数“全名”和“年份”。
public static CustomerNumber getInstance(CustomerName name, Date dateIssued) {
Calendar cal = Calendar.getInstance();
cal.setTime(dateIssued);
int yearIssued = cal.get(Calendar.YEAR);
return name.getFirstName().charAt(0) + name.getLastName().charAt(0) + "-" + yearIssued + "-" + serialNumber;
}
预期的结果是这样的:
“约翰·史密斯”,2018 年 --> JS-2018-01,
“乔·斯科特”,2018 --> JS-2018-02,
'贾登·斯科特',2018 --> JS-2018-03
“玛吉·斯科特”,2018 年 --> MS-2018-01,
基本上,如果前缀(姓名首字母和年份)已经存在,则必须应用序列号增量来表示它是一个新人。
我尝试应用某种 Map,但我是 java/ 编程新手,想要一些建议
【问题讨论】:
-
为什么要使用地图? (不是说错了,只是想按照你的思路来)
-
@AleZalazar 老实说,这是一种打击和希望。可能将前缀作为键,将值作为最后的数字。如果前缀存在,则返回该值并将其加一并将其设置为新值?如果这是可能的:/
-
绝对可以,您可以使用
Map<String, Integer> map = new HashMap<>();并放置/获取您的东西。
标签: java collections hashmap