4.5学习进度
技术学习
Java
Java人物管理系统问题分析
- 对于清明节做的人物管理系统进行测试,发现以下问题:
- 在创建新用户的时候会出现bug,用户名将与用户预期输入的不相一致
- 用户登陆和进入人物操作页面的时候会报异常:
- 排查后发现原因为Scanner类读取的int类型和String类型错误
- 用户查询人物信息的时候输出格式不尽人意
- 用户进行删除人物信息操作的时候,txt中对应的存放的位置将留下1,不美观而且不便于保存
- 用户进行更改人物信息操作的时候,需要一次性将全部信息重新设置,用户体验不佳
- 界面比较丑
- 可扩展性差,代码逻辑混乱而且需要添加新功能的时候只能通过新的类挂载到Drive类中的main方法中
问题解决
- 对以上问题列出解决方法如下
- 重新构建一个Project,并一开始做好分包以及类的规划
- 使用Scanner的时候尽量使用,.next();或者.nextline(); 方法,switch选择的时候使用''而不是int型进行标记
- 学习容器,并进行使用,其中的Remove等方法将可以规范化删除和更改信息
- 在用户使用逻辑上考虑更多的可能性,并对各功能进行暴力性测试以保证其能够顺利运行
- 在编写的时候先生成思维导图,考虑清楚本程序需要执行的功能,并为未来升级留下空间(可以写一个方法名称,并注释其功能,而不实现其逻辑)
- 一边开发一边用图表记录自己已经编写的类以及类与类之间的关系
容器
- Java容器类类库的用途是保存(引用)对象,主要分两种:
- Collection(集合):一个独立元素的序列。List、Set、Queue。
- Map:一组成对相对应的键值以及对象。ArrayList也可以看做是数字与对象的关联关系,如HashMap,是对象与对象关联的关系。
学习的时候我参考的是一篇文章,详见引用于CSDN博客上的一篇博文
- Collection接口:
- Set:无序集合,元素不可重复
- List:有序集合,元素可以重复
- Queue:队列
- Map接口:
- 存放的是key-value对,由key和value两个值组成
Map
这次学习主要学习的是Map接口。
- 理解key-value对,对于Map中的每一个key,总额能找到唯一确定的valiue。将key单独来看,它们组成了一个set集合,j二有一个keySet()方法可以返回map中所有key组成的Set集合
Map接口下有以下子接口或实现类: HashMap,LinkedHashMap,SortedMapTreeMap,EnumMap等
Map中常用方法:
- void clear();
删除Map对象中所有的key-value对
- boolean containsKey();
查询Map中是否包含指定的key
- boolean containsValue(Object value)
查询Map中是否包含一个或多个value
返回Map中包含key-value对锁组成Set集合,每个集合元素都是Map.Entry(Entry为Map内部类)的对象
- boolean isEmpty();
查询该Map是否为空(即不包括人和key-value对)
- Object put(Object key,Object value);
添加一个key-value对,若此对之前存在,则新的对将覆盖原对
- void putAll(Map m)
将指定Map中的key-value中的key-value对复制到本Map中
- Object remove(Object key)
删除指定key对应的key-value对,删除成功则返回被删除key所关联的value,若不存在则返回null
- int size();
返回Map中所有key-value对的个数
- boolean replace(Object key,object value);
将Map中指定的key对应的key换成新的value,此方法不会添加新的key-value对