当前位置:   article > 正文

集合一:List

集合一:List

一:集合简介:

1、定义:

集合是由若干个确定的元素所构成的整体,在程序中一般代表保存若干个元素(数据)的某种容器。

2、为什么要用集合:

通过定义可知,集合就是由若干元素组成的,那么数组也是一种集合,使用也方便,那为什么还要有其他集合呢?

数组的特点:初始化后大小不可变;数组只能按索引顺序存取。

因此,我们需要有各种不同类型的集合类来处理不同的数据,例如:大小可变的顺序链表,保证无重复元素的集合....

3、集合的类型:

主要有三种类型的集合:

List:一种有序列表的集合;

Set:一种保证没有重复元素的集合;

Map:一种通过键值对查找映射表的集合

二:List集合

1、List集合特点

List是有序的、可重复的单列集合,集合中的每个元素都有对应的顺序索引。且List允许有null值。

2、常用的API方法

boolean add(E e):在集合末尾添加一个数据元素;

boolean add(int index, E e):在集合的指定索引出添加一个数据元素;

E remove(int index):删除集合中指定索引的元素;

boolean remove(Object e):删除集合中的某个元素;

E get(int index):获取集合中指定索引出的元素;

int size():获取集合的大小(包含元素的个数)。

3、创建对象的方法

通过多态的方式创建对象:因为List是接口,不能直接new list;

通过Arrays.List()方法创建对象:根据指定元素快速创建对象

  1. import java.util.ArrayList;
  2. import java.util.LinkedList;
  3. import java.util.List;
  4. public class test {
  5. public static void main(String[] args) {
  6. //方法一:
  7. List<String> list1 = new ArrayList<>();
  8. List<String> list2 = new LinkedList<>();
  9. //方法二:
  10. List<Integer> list3 = Arrays.asList(1,3,5,7,8,4);
  11. }
  12. }

4、List的遍历方式

for循环+get(索引值):对ArrayList比较高效,但是对LinkedList比较低效

增强for循环:比普通for循环简洁一些

使用Iterator迭代器进行稽核遍历:不同的List对象调用iterator()方法时,会返回不同实现的Iterator对象,该Iterator对象对集合总是具有最高访问效率。

5、ArrayList和LinkedList的比较

ArrayList

LinkedList

获取指定元素

速度快

需要从头开始查找

添加元素到末尾

速度快

速度快

在指定位置添加/删除

需要移动元素

不需要移动元素

内存占用

较大

List重点:

List是按索引顺序访问的、长度可变的有序列表;

一般开发时,ArrayList比LinkedList的使用更频繁;

List和Array可以相互转换;

集合遍历时有多种方式,增强for循环和Iterator迭代器的效率更高;

ArrayList与LinkedList都是List接口的实现类,都实现了List中所有未实现的方法,但实现的方式有所不同;

ArrayList底层的数据结构基于动态数组,访问元素速度快于LinkedList,在快速访问数据时ArrayList的执行效率比较高;

LinkedList底层的数据结构基于链表,占用的内存空间较大,但批量插入或删除数据时快于ArrayList。当频繁向集合中插入和删除元素时,使用LinkedList比ArrayList的效率更高。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小丑西瓜9/article/detail/306273
推荐阅读
相关标签
  

闽ICP备14008679号