JavaSE入门学习35:Java集合框架之List接口及其实现类ArrayList和LinkedList

时间:2020-12-24 19:28:44

       一List接口概述

       List接口是Collection接口的子接口,实现List接口的集合类中的元素是有顺序的,而且可以重复,被称为序列。

       List集合中的元素都对应一个整数型的序列容器中的序号记载其在容器中的位置,可以根据序号存取容器中的元

素。List接口可以精确的控制每个元素的插入位置,或者删除某个位置元素。

       Java所提供的List集合实现类类有ArrayList实现类、LinkedList实现类、Vector等,我们主要使用的是ArrayList实

现类和LinkedList实现类。

       List接口中定义以及从Collection接口继承的方法:

JavaSE入门学习35:Java集合框架之List接口及其实现类ArrayList和LinkedList

JavaSE入门学习35:Java集合框架之List接口及其实现类ArrayList和LinkedList

       二ArrayList实现类

       ArrayList实现类是数组序列,是List接口的一个重要实现类(使用频率最高的),该实现类底层是由数组实现的。

ArrayList实现类是一个数组队列,相当于动态数组。它由数组实现,随机访问效率高,随机插入、随机删除效率低。

       ArrayList实现类中的方法:

JavaSE入门学习35:Java集合框架之List接口及其实现类ArrayList和LinkedList

JavaSE入门学习35:Java集合框架之List接口及其实现类ArrayList和LinkedList

       实例代码:

<span style="font-size:18px;"><span style="font-size:18px;">import java.util.*;

public class Demo{
public static void main(String[] args){
List l1 = new ArrayList();
for(int i=0;i<=5;i++){
l1.add("a"+i);
}
System.out.println(l1);
l1.add(3,"a100");
System.out.println(l1);
l1.add(6,"a200");
System.out.println(l1);
System.out.println((String)l1.get(2)+"");
System.out.println(l1.indexOf("a3"));
l1.remove(1);
System.out.println(l1);
}
}</span></span>

       运行结果:

JavaSE入门学习35:Java集合框架之List接口及其实现类ArrayList和LinkedList

       三LinkedList实现类

       LinkedList实现类是List接口的一个重要的实现类,LinkedList实现类是一个双向链表。它也可以被当作堆栈、队

列或双端队列进行操作。LinkedList实现类随机访问效率低,但随机插入、随机删除效率低。

       LinkedList实现类的方法:

JavaSE入门学习35:Java集合框架之List接口及其实现类ArrayList和LinkedList

JavaSE入门学习35:Java集合框架之List接口及其实现类ArrayList和LinkedList

JavaSE入门学习35:Java集合框架之List接口及其实现类ArrayList和LinkedList

JavaSE入门学习35:Java集合框架之List接口及其实现类ArrayList和LinkedList

       由于实例和上面一样就不在赘述。

       List接口常用算法

       类java.util.Collection提供了一些静态方法实现了基于List集合的一些常用算法:

JavaSE入门学习35:Java集合框架之List接口及其实现类ArrayList和LinkedListJavaSE入门学习35:Java集合框架之List接口及其实现类ArrayList和LinkedList

       实例代码:

<span style="font-size:18px;"><span style="font-size:18px;">import java.util.*;

public class Test{
public static void main(String[] args){
List l1 = new ArrayList();
for(int i=0;i<=9;i++){
l1.add("a"+i);
}
System.out.println(l1);
Collections.shuffle(l1);//随机排列
System.out.println(l1);
Collections.reverse(l1);//逆序排列
System.out.println(l1);
Collections.sort(l1);//排序
System.out.println(l1);
System.out.println(Collections.binarySearch(l1,"a5"));
}
}
</span></span>

       运行结果:

JavaSE入门学习35:Java集合框架之List接口及其实现类ArrayList和LinkedList