集合一:List

目录

一:集合简介:

1、定义:

2、为什么要用集合:

3、集合的类型:

二:List集合

1、List集合特点

2、常用的API方法

3、创建对象的方法

4、List的遍历方式

5、ArrayList和LinkedList的比较

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

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

  • 27
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

猿究院-Cu-Sn合金

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值