List
java.util.List
接口继承自Collection
接口,是单列集合的一个重要分支,习惯性地会将实现了List
接口的对象称为List集合。
1.在List集合中允许出现重复的元素,所有的元素是以一种线性方式进行存储的,在程序中可以通过索引来访问集合中的指定元素。
2.另外,List集合还有一个特点就是元素有序,即元素的存入顺序和取出顺序一致。
List接口特点:
- 它是一个元素存取有序的集合。例如,存元素的顺序是11、22、33。那么集合中,元素的存储就是按照11、22、33的顺序完成的)。
- 它是一个带有索引的集合,通过索引就可以精确的操作集合中的元素(与数组的索引是一个道理)。
- 集合中可以有重复的元素,通过元素的equals方法,来比较是否为重复的元素。
3.2 List接口中常用方法
public void add(int index, E element)
: 将指定的元素,添加到该集合中的指定位置上。public E get(int index)
:返回集合中指定位置的元素。public E remove(int index)
: 移除列表中指定位置的元素, 返回的是被移除的元素。public E set(int index, E element)
:用指定元素替换集合中指定位置的元素,返回值的更新前的元素。
3.3 ArrayList集合
ArrayList集合数据存储的结构是数组结构。元素增删慢,查找快,由于日常开发中使用最多的功能为查询数据、遍历数据,所以
ArrayList`是最常用的集合。
3.4 LinkedList集合
java.util.LinkedList
集合数据存储的结构是链表结构。方便元素添加、删除的集合。
LinkedList是一个双向链表,那么双向链表是什么样子的呢,我们用个图了解下
实际开发中对一个集合元素的添加与删除经常涉及到首尾操作,而LinkedList提供了大量首尾操作的方法。这些方法我们作为了解即可:
public void addFirst(E e)
:将指定元素插入此列表的开头。public void addLast(E e)
:将指定元素添加到此列表的结尾。public E getFirst()
:返回此列表的第一个元素。public E getLast()
:返回此列表的最后一个元素。public E removeFirst()
:移除并返回此列表的第一个元素。public E removeLast()
:移除并返回此列表的最后一个元素。public E pop()
:从此列表所表示的堆栈处弹出一个元素。public void push(E e)
:将元素推入此列表所表示的堆栈。public boolean isEmpty()
:如果列表不包含元素,则返回true。
LinkedList是List的子类,List中的方法LinkedList都是可以使用,这里就不做详细介绍,我们只需要了解LinkedList的特有方法即可。在开发时,LinkedList集合也可以作为堆栈,队列的结构使用。
public class Demo04LinkedList { public static void main(String[] args) { method4(); } /* * void push(E e): 压入。把元素添加到集合的第一个位置。 * E pop(): 弹出。把第一个元素删除,然后返回这个元素。 */ public static void method4() { //创建LinkedList对象 LinkedList<String> list = new LinkedList<>(); //添加元素 list.add("达尔文"); list.add("达芬奇"); list.add("达尔优"); System.out.println("list:" + list); //调用push在集合的第一个位置添加元素 //list.push("爱迪生"); //System.out.println("list:" + list);//[爱迪生, 达尔文, 达芬奇, 达尔优] //E pop(): 弹出。把第一个元素删除,然后返回这个元素。 String value = list.pop(); System.out.println("value:" + value);//达尔文 System.out.println("list:" + list);//[达芬奇,达尔优] } /* * E removeFirst():删除第一个元素 * E removeLast():删除最后一个元素。 */ public static void method3() { //创建LinkedList对象 LinkedList<String> list = new LinkedList<>(); //添加元素 list.add("达尔文"); list.add("达芬奇"); list.add("达尔优"); //删除集合的第一个元素 // String value = list.removeFirst(); // System.out.println("value:" + value);//达尔文 // System.out.println("list:" + list);//[达芬奇,达尔优] //删除最后一个元素 String value = list.removeLast(); System.out.println("value:" + value);//达尔优 System.out.println("list:" + list);//[达尔文, 达芬奇] } /* * E getFirst(): 获取集合中的第一个元素 * E getLast(): 获取集合中的最后一个元素 */ public static void method2() { //创建LinkedList对象 LinkedList<String> list = new LinkedList<>(); //添加元素 list.add("达尔文"); list.add("达芬奇"); list.add("达尔优"); System.out.println("list:" + list); //获取集合中的第一个元素 System.out.println("第一个元素是:" + list.getFirst()); //获取集合中的最后一个元素怒 System.out.println("最后一个元素是:" + list.getLast()); } /* * void addFirst(E e): 在集合的开头位置添加元素。 * void addLast(E e): 在集合的尾部添加元素。 */ public static void method1() { //创建LinkedList对象 LinkedList<String> list = new LinkedList<>(); //添加元素 list.add("达尔文"); list.add("达芬奇"); list.add("达尔优"); //打印这个集合 System.out.println("list:" + list);//[达尔文, 达芬奇, 达尔优] //调用addFirst添加元素 list.addFirst("曹操"); System.out.println("list:" + list);//[曹操, 达尔文, 达芬奇, 达尔优] //调用addLast方法添加元素 list.addLast("大乔"); System.out.println("list:" + list);//[曹操, 达尔文, 达芬奇, 达尔优, 大乔] } }