java部分
gitee链接:https://gitee.com/cai-nijian/data-structure
(一).设计思路
1.这次我选择用java封装了一个数组类型的数据结构。为了代码的鲁棒性,我选择通过泛型的方式来构造。其中对于不合理的用户输入采用了异常处理。
2.在构造中我先是定义数组变量和计算已存在数据大小的函数。并通过有参构造和无参构造先行构造出数组。
3.通过自定义数组我主要实现了增删改查功能的实现。
- Insert:在传入的数组下标位置处增加数据(传入不合理会报异常)
- InsertLast:在数组尾部插入
- InsertFirst:在数组头插入
- delete:删除传入的数组下标处的数据,并返回数据(删除位置无数据会报异常)
- deleteLast:从数组尾部删除
- deletFirst:从数组头删除
- update:修改更新数据(修改位置信息不存在会报异常)
- selectAll:查询全部数据,数组中无记录时输出“数组中暂时无数据“
- select:根据给出条件查找数组,返回数组下标,没有则返回-1
- selectLocation:根据用户给出的下标查找元素
(二)代码实现的遇难与解决
困难:我一开始采用的是设计int类型的数组,通过继承方式来构造方法。但是我发现对数据的类型锁的太死了,没有太大的可移植性,而且无法处理那种有多个数据类型的数组。
解决思路:我通过查询发现泛型可完美解决问题。由于不会泛型,通过在b站上自主学习和csdn上自学的方式,成功的搞懂了泛型的使用规范。并且构造了一个测试类,一步步测试数据,在出错中理解这个技巧。
困难:当我构造方法时发现,我对于用户传入方法内的数据没有做出规范,很容易造成位置在数组中不存在的情况出现。
解决思路:通过异常来处理。查询异常的知识后构造异常来解决这些不合法输入。
(三)心得体会
代码的学习的确是个不断自我学习的过程。b站和csdn是学习的不二伙伴,可以说是我在b站上大学。还有就是代码需要不断去调试,所以测试类一定不能少,要尽量做到完美。有了问题有了错误细细检查代码,很可能错的就是小问题,一步步测试,分块实现就一定能够成功。