List<E> 是一个继承自Collection<E> 的接口,List除了继承Collection的方法外还有其独特的方法。
LinkedList<E> 则是List<E> 的一个实现类,与ArrayList不同的是,ArrayList的数据结构是数组,而LinkedList的结构为链表。由于它们的数据结构不同,所以它们的使用场景就不同。当查询多,增删少的时候我们用ArrayList,反之增删多,查找少时我们用LinkedList。当我们不知道哪种操作多时,用ArrayList。
接下来我们来看看它们有那些独特的方法(区别于Collection),这些方法都特别简单,见名知意。
一、List
- void add(int index, E element) : 在指定索引位置index添加元素element,且原index位置的元素及其之后元素的索引数+1
- E get(int index) : 根据index返回对应元素
- E remove(int index) :删除index对应的元素,并返回删除的元素
- E set(int index,E element) : 将index对应的元素修改为element,并返回修改前的元素
//列表对象
List list =new ArrayList();
//void add(int index, E element)
list.add(0, "hello");
System.out.println(list);
//output:[hello]
list.add(0,"java");
System.out.println(list);
//output:[java, hello]
list.add(1,1);
System.out.println(list);
//output:[java, 1, hello]
//E get(int index)
for (int i = 0; i < list.size(); i++) {
System.out.println(list.get(i));
}
//output: java \n 1 \n hello \n
//E remove(int index)
System.out.println(list.remove(1));
//output:1
//E set(int index,E element)
System.out.println(list.set(1, "Spark"));
//output:1
System.out.println(list);
//output:[java,spark]
二、LinkedList
- void addFirst(E e) : 添加元素到索引为0的位置
- void addLast(E e) : 添加元素到索引为size()-1的位置
- E getFirst() : 返回第一元素,索引为0
- E getLast() : 返回最后一个元素,索引为size()-1
- E removeFirst() : 删除第一个并返回,索引为0
- E removeLast() : 删除最后一个并返回,索引为size()-1
import java.util.LinkedList;
public class LinkedListDemo {
public static void main(String[] args) {
//创建LinkedList对象
LinkedList<String> linked = new LinkedList<String>();
linked.add("Hello");
linked.add("Java");
//void addFirst(E e):添加元素到索引为0的位置
//void addLast(E e) :添加元素到索引为size()-1的位置
linked.addFirst("Hadoop");
linked.addLast("Spark");
//E getFirst():返回第一元素
//E getLast() :返回最后一个元素
System.out.println(linked.getFirst());
System.out.println(linked.getLast());
//E removeFirst():删除第一个并返回
//E removeLast() :删除最后一个并返回
System.out.println(linked.removeFirst());
System.out.println(linked.removeLast());
}
}