Collection接口,List接口,ArrayList常用方法
表示容器里装的是String类型元素。
容器的常用方法
List
List是有序,可重复的容器。
List<String> list = new ArrayList<> (); //创建List对象,其元素为String型
list.add("A"); //在list里添加元素 "A"
list.add("B");
list.add("C");
list.add("D");
System.out.printIn(list);
list.add(2,"高淇"); //在list的索引为二的位置插入 “高淇”
System.out.printIn(list);
list.remove(2); //删去list中的索引为二的位置上的元素
System.out.println(list);
list.set(2, "高老二"); //把list中的索引为二的位置上的元素替换为“高老二”
System.outprintln(list);
System.outprintln(list.get(2)); //取list中的索引为二的位置上的元素
list.add("C");
list.add("B");
list.add("A");
System.out.println(list);
System.out.println(list.indexOf("B")); //取第一次出现的元素为“B”的索引值
System.out.println(list.lastIndexOf("B")); //取最后一次出现的元素为“B”的索引值
输出结果:
ArrayList
ArrayList底层是用数组实现的存储。特点:查询效率高,增删效率低,线程不安全。我们一般使用它。
数组长度是有限的,而ArrayList是可以存放任意数量的对象,长度不受限制。
用法与上类似。
链表LinkedList
LinkedList底层用双向链表实现的存储。特点:查询效率低,增删效率高,线程不安全。
双向链表也叫双链表,是链表的一种,它的每个数据节点中都有两个指针,分别指向前一个节点和后一个节点。所以,从双向链表中的任意一个节点开始,都可以很方便地找到所有节点。
创建一个链表类,其中链表类包含三个属性:头结点、尾节点和大小,方法包含添加、删除、插入等等方法。
创建单节点链表:
public class Node {
2 public Object data;
3 public Node next;
4
5 public Node(Object e){
6 this.data = e;
7 }
8 }
创建双节点链表:
public class Node {
2 public Object e;
3 public Node next;
4 public Node pre;
5 public Node(){
6
7 }
8 public Node(Object e){
9 this.e = e;
10 next = null;
11 pre = null;
12 }
13 }