前言
在软件构造课的实验5时,需要对大数据测试来判断我们程序的性能,最后我的时间总是比室友要慢几秒,在确定了我们读取文件的方式,构建轨道的算法基本复杂度没有区别时,就更加让我疑惑了,最后在仔细对比两个人的算法和rep的区别后,发现有个地方我使用的是Arraylist,而他使用的是hashmap,然后都有在这两个结构里进行查找的需求,本来我以为查找都应该是线性的,却忘记了hash的查找上的优势
原理
对于ArrayList,如果我们想要找到一个元素,但是我们并不知道这个元素在里面的位置,比如:
// An highlighted block
List<Friend> list = new Arraylist;
我们有一个String类型的ArrayList,这时如果我们要在里面找一个friend,我们只知道这个人的名字,那么这个时候我们只能通过遍历的方法
// An highlighted block
For(Friend friend:list){
if(friend.name