List
List集合
1. List接口
-
java.util.List
接口继承自Collection
接口 - 允许出现重复的元素
- 元素存取有序的集合,元素是以一种线性方式进行存储的。
- 可以通过索引来访问集合中的指定元素
,是单列集合的一个重要分支,习惯性地会将实现了List
接口的对象称为List集合。在List集合中,,在程序中。另外,List集合还有一个特点就是元素有序,即元素的存入顺序和取出顺序一致。
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)
:用指定元素替换集合中指定位置的元素,返回值的更新前的元素。
package com.itheima.demo01.List;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
public class Demo01List {
public static void main(String[] args) {
List<String> stringList = new ArrayList<>();
//不加下标就是追加
stringList.add("王小明");
stringList.add("李晓红");
stringList.add("赵小刚");
System.out.println(stringList);
//加入下标就是在指定位置追加
stringList.add(1, "孙小雷");
System.out.println(stringList);
System.out.println("开始打印每一个元素:");
for (int i = 0; i < stringList.size(); i++) {
System.out.println(stringList.get(i));
}
System.out.println("移除下标为2的元素:");
System.out.println("被移除的元素为" + stringList.remove(2));
System.out.println(stringList);
System.out.println("替换下标为2的元素:");
System.out.println("被替换的元素为:" + stringList.set(2, "班主任"));
System.out.println(stringList);
//循环遍历的三种方式
demo01(stringList);//普通for循环
demo02(stringList.iterator());//迭代器循环
demo03(stringList);//增强for循环
}
public static void demo01(List<String> list) {
for (int i = 0; i < list.size(); i++)
System.out.println(list.get(i));
}
public static void demo02(Iterator<String> iterator) {
while (iterator.hasNext())
System.out.println(iterator.next());
}
public static void demo03(List<String> list) {
for (String str : list) System.out.println(str);
}
}
3. List接口子类
3.1 ArrayList集合
3.2 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。
addfirst<=>push
addlast<=>add