目录
4. Collection子接口1:List
4.1 List接口特点
4.2 List接口方法
4.3 List接口主要实现类:ArrayList
4.4 List的实现类之二:LinkedList
4.5 List的实现类之三:Vector
4.6 练习
4. Collection子接口1:List
4.1 List接口特点
- 鉴于Java中数组用来存储数据的局限性,我们通常使用替代数组
- List集合类中、且,集合中的每个元素都有其对应的顺序索引。
- 举例:List集合存储数据,就像银行门口客服,给每一个来办理业务的客户分配序号:第一个来的是“张三”,客服给他分配的是0;第二个来的是“李四”,客服给他分配的1;以此类推,最后一个序号应该是“总人数-1”。
- JDK API中List接口的实现类常用的有:、和。
4.2 List接口方法
List除了从Collection集合继承的方法外,List 集合里添加了一些来操作集合元素的方法。
- 插入元素
- :在index位置插入ele元素
- boolean addAll(int index, Collection eles):从index位置开始将eles中的所有元素添加进来
- 获取元素
- :获取指定index位置的元素
- List subList(int fromIndex, int toIndex):返回从fromIndex到toIndex位置的子集合
- 获取元素索引
- int indexOf(Object obj):返回obj在集合中首次出现的位置
- int lastIndexOf(Object obj):返回obj在当前集合中末次出现的位置
- 删除和替换元素
- :移除指定index位置的元素,并返回此元素
- :设置指定index位置的元素为ele
举例:
注意:在JavaSE中List名称的类型有两个,一个是java.util.List集合接口,一个是java.awt.List图形界面的组件,别导错包了。
4.3 List接口主要实现类:ArrayList
- ArrayList 是 List 接口的
- 本质上,ArrayList是对象引用的一个”变长”数组
- Arrays.asList(…) 方法返回的 List 集合,既不是 ArrayList 实例,也不是 Vector 实例。 Arrays.asList(…) 返回值是一个固定长度的 List 集合
4.4 List的实现类之二:LinkedList
- 对于频繁的插入或删除元素的操作,建议使用LinkedList类,效率较高。这是由底层采用链表(双向链表)结构存储数据决定的。
- 特有方法: java基础接口图解
- void addFirst(Object obj)
- void addLast(Object obj)
- Object getFirst()
- Object getLast()
- Object removeFirst()
- Object removeLast()
4.5 List的实现类之三:Vector
- Vector 是一个的集合,JDK1.0就有了。大多数操作与ArrayList相同,区别之处在于Vector是的。
- 在各种List中,最好把。当插入、删除频繁时,使用LinkedList;Vector总是比ArrayList慢,所以尽量避免使用。
- 特有方法:
- void addElement(Object obj)
- void insertElementAt(Object obj,int index)
- void setElementAt(Object obj,int index)
- void removeElement(Object obj)
- void removeAllElements()
4.6 练习
练习1:
- 定义学生类,属性为姓名、年龄,提供必要的getter、setter方法,构造器,toString(),equals()方法。
- 使用ArrayList集合,保存录入的多个学生对象。
- 循环录入的方式,1:继续录入,0:结束录入。
- 录入结束后,用foreach遍历集合。
- 代码实现,效果如图所示:
Student.java
StudentTest.java
练习2:
1、请定义方法public static int listTest(Collection list,char s)统计集合中指定元素出现的次数
2、创建集合,集合存放随机生成的30个小写字母
3、用listTest统计,a、b、c、x元素的出现次数
4、效果如下
ListTest.java
版权声明:
本文来源网络,所有图片文章版权属于原作者,如有侵权,联系删除。
本文网址:https://www.bianchenghao6.com/h6javajc/25160.html