0
点赞
收藏
分享

微信扫一扫

集合一:List

黄昏孤酒 1天前 阅读 2
javaeclipse

一:集合简介:

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()方法创建对象:根据指定元素快速创建对象

import java.util.ArrayList;
import java.util.LinkedList;
import java.util.List;

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

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的效率更高。

举报

相关推荐

0 条评论