今天将从五个点剖析List的结构特点
1.List集合的基本特点
废话不多说,上代码!!!
上图为list集合的添加方法,此时的输出结果为:a,b,c,d,e 共五个元素
在图1的基础上在增加一个元素“b”,此时的输出结果为:a,b,c,d,e,b 共六个元素
由此体现了关于List集合的可重复性
ok,我们继续输入语句
list.remove(x),这个是移除的方法,但是注意了!!!
x为数据类型!
注意注意!!!
如果x为int类型,返回的类型为当前下标所代表的元素
如果x为String类型,返回的类型为boolean类型,如果集合当中含有“c”元素,则返回true,否则为false
所以此时的输出结果为:b,d,e,b
——>
list.get(x),这是集合当中获取元素的方法,x为元素代表的下标位置
list.set(x,"y") 这是集合当中设置元素的方法,x为元素代表的下表位置,y为你所要设置的内容
这里的意思是设置第0位元素为a,之前第0位元素的内容将会被替换
所以最后的输出结果为:a,d,e,b
总结:lis集合的增删改查,集合的有序性,集合的可重复性!
2.关于List集合三种遍历方式
老样子,话不多说,往集合里面丢几个元素
① fori 方法
for (int i = 0; i < list.size(); i++) {
System.out.println(list.get(i));
}
② foreach 方法
for (String s : list) {
System.out.println(s);
}
③ Iterator 方法
Iterator<String> it = list.iterator();
while (it.hasNext()) {
System.out.println(it.next());
}
这三种方法的输出结果都为:a,b,c
总结:三种方法都可以遍历集合里面的元素
3.用linkedList集合实现队列以及堆栈
说明:队列以及堆栈可能比较抽象,给大家画图先讲解一下何为队列以及堆栈
①队列
画图水平一般,见谅......
图中为一个队列,遵循左进右出的原理,所以,先进先出为队列
②堆栈
图中为一个容器,依次加入abc元素,所以a居下,b居中,c最上,在取元素的时候,
顺序为c,b,a 遵循先进后出的道理
图中代码,class一个堆栈实体类,pop()为取元素的方法,在main方法里面调用pop()方法,最后的输出结果为 c,b,a 先进后出
4.增长因子论证
这里我们首先了解关于List集合增长因子的论证,给大家论证一遍
①Arraylist集合底层是数组结构,是“可变数组”
②一旦超过默认数组大小会自动扩容,宽容的增长因子为0.5
printElementDataLength()方法是验证增长因子为0.5的方法
直接输出看结果
代码中我使用了fori()的方法进行遍历,区间为1-30
从输出结果图可以看出当i<=10时,数组默认长度为10,
当i的数值大于数组默认长度时,数组接下来的长度为10*0.5=15,以此类推......
5.集合框架Arraylist中重复元素去重及其底层原理
记住!list集合当中去重与去重对象的equals方法有关
!list.contains()方法 意思为:不包含
代码中为:如果集合当中不包含某某人,那就添加某某人
输出结果为此图,图中“equals方法被调用。。。”出现两次,是因为在list集合中,运行
时从上往下,因为集合当中有“李四”这个人,所以不需要添加。
“equals方法被调用。。。” 此语句出现的第二次就进行了判断,判断有“李四”这个人
这个方法为equals()方法,快捷键为Alt+Shift+s
可以自动生成equals()方法
总结:关于集合框架Arraylist的一些方法特性,都给大家细分到这里了,希望能有所帮助