List使用场景
特点:
①在 List集合中允许出现 重复元素 《通过元素的equals方法,来比较是否为重复的元素。》
②所有元素是以一种 线性方式进行存储
③List集合还有一个特点就是元素有序即元素的存入顺序和取出顺序一致。
API介绍:
java.util.List接口继承自Collection接口,是单列集合的一个重要分支,
习惯性地会将实现了List接口的对象称为List集合。在List集合中允许出现重复的元素,
所有的元素是以一种线性方式进行存储的,在程序中可以通过索引来访问集合中的指定元素。
另外,List集合还有一个特点就是元素有序,即元素的存入顺序和取出顺序一致。
⑴ ArrayList集合
java.util.ArrayList集合数据存储的结构是数组结构。元素增删慢,查找快,
由于
日常开发中使用最多的功能为查询数据、遍历数据,所以ArrayList是最常用的集合。
在开发时,LinkedList集合也可以作为堆栈,队列的结构使用
特点:查询数据、遍历数据
①增删慢 查找快
⑵ LinkedList集合
java.util.LinkedList集合数据存储的结构是链表结构。方便元素添加、删除的集合
特点:方便元素添加、删除的集合
①增删快,查找慢
常见方法
List(线性表)
ArrayList(顺序表)
LinkedList(链表)
代码演示
import java.util.LinkedList;
import java.util.List;
import java.util.ArrayList;
public class ListDemo {
public static void main(String[] args) {
List<String> courses=new ArrayList<>();
courses.add("a");
courses.add("b");
courses.add("c");
courses.add("d");
//和数组一样允许添加重复元素
courses.add("a");
//按照添加顺序打印
System.out.println(courses);
//类似数组下标的访问方式
System.out.println(courses.get(1));
System.out.println(courses);
//截取(左闭右开)
List<String> subCourses=courses.subList(1,3);
System.out.println(subCourses);
//更改0号下标的数
courses.set(0,"f");
System.out.println(courses);
//重新构造
List<String> courses2 = new ArrayList<>(courses);
System.out.println(courses2);
List<String> courses3 = new LinkedList<>(courses);
System.out.println(courses3);
}
}
运行结果
[a, b, c, d, a]
b
[a, b, c, d, a]
[b, c]
[f, b, c, d, a]
[f, b, c, d, a]
[f, b, c, d, a]