利用HashMap实现快递驿站控制台(简易版)
文章目录
前言
利用集合HasMap完成快递单号,快递公司,快递取件码之间的联系。
涉及知识点:HashMap中的增加数据,删除数据,修改数据,查找数据
死循环是为了可以重复录入数据
map的简易示意图:
一、快递员界面
1.存快递功能
if (choose == 1) {
for (; ; ) {
System.out.print("输入单号:");
String nums = sc.next();
System.out.print("输入快递公司:");
String company = sc.next();
//快递单号对应快递公司
map.put(nums, company);
//手动输入取件码
/* System.out.print("输入取件码:");
String take = sc.next();*/
//自动生成取件码(没有去重)
System.out.print("取件码:");
//生成一个2000内的随机数字字符串
String a = String.valueOf(random.nextInt(2000));
//快递单号对应取件码
System.out.println(a);
//将取件码录入map中,以实现取件功能
map2.put(nums, a);
//询问使用者是否继续录入
System.out.println("是否继续录入?(y/n)");
String quiz = sc.next();
if (quiz.equals("n")) {
break;
}
}
}
HashMap的数据录入:
语句:map.put(key,value)
key和value的数据类型必须是String类型。这也是代码中为什么要生成随机数字字符串和手动输入数字字符串,而不是数字的原因。
2.删除快递功能
if (choose == 2) {
for (; ; ) {
System.out.print("输入要删除快递的单号:");
String delete = sc.next();
map.remove(delete);
map2.remove(delete);
System.out.println("是否继续删除?(y/n)");
String quiz = sc.next();
if (quiz.equals("n")) {
break;
}
}
}
HashMap的数据删除:
语句:map.remove(key)
删除map中数据,只需删除map的key,value自然就会被删除,既删除快递单号。所以在定义HashMap时以快递单号为key。因为如果用快递公司或取件码为key时会存在重复数据(取件码没有去重),而快递单号是唯一的。
3.修改快递信息功能
if (choose == 3) {
for (; ; ) {
System.out.println("输入要修改的快递单号:");
String revise = sc.next();
Set<String> set = map.keySet();
et<Map.Entry<String, String>> setentry = map.entrySet();
for (String s : set) {
if