List集合
List集合特点:
元素有序的,且可重复。(元素有序不是指,我们存进Lits集合中的什么1,3,7,6他给我们从小到大,或者从大到小这样子,所谓的有序是我们该集合有下标,下标从0开始,然后我们按照什么顺序增加到list集合的,那么他就是什么样子的顺序)。
List集合遍历:
根据下标,foreach,迭代器遍历数据。
ArrayList集合是继承List的集合的,所以Lits集合具备的一些特点,ArrayList也是具备的。
ArrayList集合的特点:
简单数据结构,超出容量会自动扩容,也是和List集合的扩容是一样的。
ArrayList集合动态数组,为什么说是动态数组,因为数组一般能存放多少数据,一般都是定好的,而ArrayList数组是可以根据数据扩容的,所以是一个动态的数组。
内部实现是基于基础的对象数组的,也就是ArrayList集合存放的是对象。
ArrayList集合不适合随机的删除和增加。
ArrayList删除几种删除
for循环删除方法 0 1
这种方法存在一个非常致命的问题,我这里的判断是删除为3的数据,集合中有两个为3的,但是只删除了一个3,得到的结果为[1, 2, 3, 4, 5, 6]
为什么没有将2个3全部删除?
因为在进行删除的时候会,本来集合数据为[1,2,3,3,4,5,6],但是在我们删除3的时候,集合立马就会变成[1,2,3,4,5,6]第二个3的下标网上移动了,而for循环已经走到下标为3的,而第一个3被在删除的那一刻第二个3的下标本来是3,但是立马下标为2了,所以这就是为什么结果为[1, 2, 3, 4, 5, 6],所以这种方法非常大的bug存在,因为想删除的数据没有删除成功。