/*List接口概述(java.util.list)
1.有序的 collection(也称为序列)。存放和取出的顺序一样的,有下标
* 2.可以有重复的元素
*
* ArrayList(实现类):
* 1.底层数据结构是数组,查询快,增删慢(就是顺序存储的特点)
*
*
* */
public class Demo1 {
public static void main(String[] args) {
//创建List对象
List list1 = new ArrayList();
//ArrayList list1 = new ArrayList();这样也不会报错,说明list和ArrayList一样
list1.add("java");
list1.add("c++");
list1.add("123");
//遍历
Iterator i1 = list1.iterator();
while (i1.hasNext()) {
System.out.println(i1.next());
}
//List特有的方法
//1.void add(int index,E element)将指定元素添加到指定下标处,下标从0开始
list1.add(0, "php");
System.out.println(list1);
//2.E remove(int index)移除指定位置的元素,移除成功返回被移除的元素
//移除失败会报错,超出范围
System.out.println(list1.remove(0));
//3.E get(int index)获取指定位置的元素
System.out.println(list1.get(0));
//4.E set(int index,E element)修改指定位置的元素内容,超出范围报错
list1.set(0, "lkkk");
System.out.println(list1);
//5.ListIterator listIterator() 迭代器,对list集合进行遍历
ListIterator l1 = list1.listIterator();
while (l1.hasNext()) {
System.out.print(l1.next()+" ");
}System.out.println(" ");
//逆序遍历
//☆☆☆☆☆☆☆☆☆☆ 该表的指针为单向指针 ☆☆☆☆☆☆☆☆☆☆
//boolean hasPrevious()判断是否有上一个元素,如果有返回true,没有返回false
// E previous() 获取上一个元素
while (l1.hasPrevious()) {
System.out.print(l1.previous()+" ");
}
}
}
/*linkList
* 链式存储的链表(链式存储的特点)
* 1.增删快,查询慢
*
* */
public class Demo2 {
public static void main(String[] args) {
//LinkedList类特有功能
LinkedList ll = new LinkedList();
ll.add("java");
ll.add("c++");
ll.add("123");
System.out.println(ll);
//public void addFirst(E e)及addLast(E e)在头部插入元素或在尾部插入元素
ll.addFirst("lk");
ll.addLast("kl");
System.out.println(ll);
//public E getFirst()及getLast()获取头部元素或尾部元素
System.out.println(" 第一个元素"+ll.getFirst());
System.out.println(" 最后一个元素"+ll.getLast());
//public E removeFirst()及public E removeLast()删除头部元素或尾部元素
//删除会有返回值,删除成功返回删除的元素
System.out.println(ll.removeFirst());
ll.removeLast();
System.out.println(ll);
}
}