1、List接口
1)异同
/* 不同点: LinkedList与ArrayList区别在于两个需求的响应效率不同 ArrayList实现的是长度可变的数组 优点:遍历和随机访问某个元素效率高 LinkedList实现的是链表形式 优点:插入和删除元素效率高 相同点: 两个都是List的实现类,集合元素都是不唯一,有序 */
2)ArrayList
-
特点:
-
ArrayList类是List接口的一个具体实现类
-
ArrayList对象实现了可变大小的数组
-
随机访问和遍历元素时,它提供更好的性能
-
-
方法:
boolean add(Object o) 在列表的末尾顺序添加元素,起始索引位置从0开始 void add(int index,Object o) 在指定的索引位置添加元素。索引位置必须介于0和列表中元素个数之间 int size() 返回列表中的元素个数 Object get(int index) 返回指定索引位置处的元素。取出的元素是Object类型,使用前需要进行强制类型转换 boolean contains(Object o) 判断列表中是否存在指定元素 boolean remove(Object o) 从列表中删除元素 Object remove(int index) 从列表中删除指定位置元素,起始索引位置从0开始 -
增加元素
-
list.add(Object obj); 表示增加一个元素
-
list.add(int index , Object element); 表示在指定位置index增加一个元素element
-
-
集合长度
-
list.size(); 获取集合中的元素个数
-
-
删除元素
-
list.remove(int index); 表示删除位置为index的元素
-
list.remove(Object obj); 表示删除该对象的元素o
-
-
判断是否存在某个元素
-
list.contains(Object o); 表示判断该数组是否存在对象(元素o),如果有返回true
-
-
清空集合
-
list.clear(); 表示将该集合中的所有元素全部清空
-
-
判断集合是否为空
-
list.empty(); 如果集合为null,则返回true
-
-
将集合转换为数组
-
Object[] arr = list.toArray(); System.out.println(Arrays.toString(arr)); 以正确的顺序(从第一个到最后一个元素)返回一个包含此列表中所有元素的数组。
-
-
循环遍历
-
//普通for循环 for(int i = 0 ; i < list.size() ; i++){ Object obj = list.get[i]; System.out.println(obj); }
-
//增强for循环 for(Object obj :list){ System.out.println(obj); }
-
//迭代器 //调用iterator方法---将list集合中的元素按顺序依次放入it这个空容器中,通过it.hasNext()判断是否容器中是否为空,若不为空代表有元素,通过it.next()依次取出 Iterator it = list.iterator; while(it.hasNext()){ Object obj = it.next(); System.out.println(obj); }
-
3)LinkedList
-
特点:
-
LinkedList是链表的形式
-
插入和删除元素数据时,它能提供更好的性能
-
能够在集合首尾插入或删除元素
-
-
方法:
-
方法与ArrayList相同
-
LinkedList特有方法(需要向下转换)
-
方法名 | 说明 |
---|---|
void addFirst(Object o) | 在列表的首部添加元素 |
void addLast(Object o) | 在列表的末尾添加元素 |
Object getFirst() | 返回列表中的第一个元素 |
Object getLast() | 返回列表中的最后一个元素 |
Object removeFirst() | 删除并返回列表中的第一个元素 |
Object removeLast() | 删除并返回列表中的最后一个元素 |