前段时间写了一个需求,遍历一个list.txt文件中的接口,并进行埋点,我用了list存储这些接口,然后判断是否有这个接口,才知道这样性能太低了,应该用set接口,下面来总结set与list
1、 list中的contains()的原理:遍历List接口的每个元素,每个元素与比较对象进行equals()比较,只要有一个相同,就返回true
2、当我们调用set的contains()方法时,会先调用每个元素的hashcode()方法,如果返回的值与比较对象相同,再调用equals()方法
list相当于数组,查找一个元素,需要遍历整个list才能查找,效率低下