List的三个子实现类:ArrayList,Vector,LinkedList
一:ArrayList:
底层数据结构是数组,查询快,增删慢,线程不安全,效率高 可以存储重复元素
ArrayList特有的功能:
int indexOf (Object o)返回此列表中指定元素的第一个出现的索引,或 - 如果此列表不包含元素,或 - 1。
void sort (Comparator < ? super E > c)分类列表使用提供的 Comparator比较元素。
List<E> subList ( int fromIndex, int toIndex)返回一个视图之间的指定 fromIndex,包容,和 toIndex这份名单的部分,独家。
Object[] toArray () 返回一个数组,包含在这个列表中的所有元素在适当的顺序(从第一个到最后一个元素)。
ArrayList特有的功能的举例:
package org.westos.Demo;
// int indexOf (Object o)返回此列表中指定元素的第一个出现的索引,或 - 如果此列表不包含元素,或 - 1。
// void sort (Comparator < ? super E > c)分类列表使用提供的 Comparator比较元素。
// List<E> subList ( int fromIndex, int toIndex)返回一个视图之间的指定 fromIndex,包容,和 toIndex这份名单的部分,独家。
// Object[] toArray () 返回一个数组,包含在这个列表中的所有元素在适当的顺序(从第一个到最后一个元素)。
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Comparator;
import java.util.List;
public class Demo {
public static void main(String[] args) {
ArrayList<Integer> list = new ArrayList<>();
list.add(10);
list.add(10);
list.add(30);
list.add(10);
list.add(20);
list.add(50);
list.add(40);
// int indexOf (Object o):查找该元素第一次在集合中出现的索引
int i = list.indexOf(10);
System.out.println(i);
// void sort (Comparator < ? super E > c)分类列表使用提供的 Comparator比较元素。
list.sort(new Comparator<Integer>() {
@Override
public int compare(Integer a, Integer b) {
return -(a - b);
}
});
System.out.println(list);
List<E> subList ( int fromIndex, int toIndex):截取集合中的元素
// List<Integer> integers = list.subList(0, 4);//含头不含尾
// System.out.println(integers);
Object[] obj = list.toArray();//把一个集合转成数组
obj[0] = 500;
System.out.println(obj[0]);
int[] arrs = {10, 20, 30};
List<int[]> ints = Arrays.asList(arrs);//把数组转成集合
System.out.println(ints);
//通过asList方法转换过来的集合,此集合不能再添加或者删除元素
List<Integer> integers = Arrays.asList(10, 60, 80, 90, 100);
System.out.println(integers);
//integers.add(100);
// integers.remove(0);
for (int j = 0; j < integers.size(); j++) {
System.out.println(integers.get(j));
}
}
}
二:Vector:
Vector :底层数据结构是数组,查询快,增删慢,线程安全,效率低。
Vector特有的功能:
E elementAt(int index):返回指定索引处的组件。
Enumeration<E> elements(): 返回此向量的组件的枚举。(迭代器)
E firstElement(): 返回第一个组件(在指数 0项目)这个载体。
E lastElement():返回向量的最后一个组件。
Vector特有的功能的举例:
package org.westos.Demo;
import java.util.Enumeration;
import java.util.Vector;
//E elementAt(int index):返回指定索引处的组件。
//Enumeration<E> elements():返回此向量的组件的枚举。 (迭代器)
//E firstElement():返回第一个组件(在指数 0项目)这个载体。
//E lastElement(): 返回向量的最后一个组件。
//测试类
public class Demo {
//主方法
public static void main(String[] args) {
Vector<Integer> integers = new Vector<>();//创建一个Vector集合
integers.add(10);
integers.add(20);
integers.add(30);
integers.add(40);
integers.add(50);
//E elementAt(int index):返回指定索引处的组件。
Integer integer = integers.elementAt(integers.size() - 1);
System.out.println(integer);
//Vector 集合特有的遍历方式
Enumeration<Integer> elements = integers.elements();
while (elements.hasMoreElements()) {
System.out.println(elements.nextElement());
}
//E firstElement():返回第一个组件(在指数 0项目)这个载体。
Integer integer1 = integers.firstElement();
//E lastElement(): 返回向量的最后一个组件。
Integer integer2 = integers.lastElement();
System.out.println(integer1);
System.out.println(integer2);
}
}
LinkedList:
底层数据结构是链表,查询慢,增删快,线程不安全,效率高
LinkedList特有的功能:
public void addFirst (E e): 将指定元素插入此列表的开头。
public void addLast(E e): 将指定元素添加到此列表的结尾
public E getFirst () :返回此列表的第一个元素。
public E getLast(): 返回此列表的最后一个元素。
public E removeFirst () :移除并返回此列表的第一个元素。
public E removeLast():移除并返回此列表的最后一个元素。
LinkedList特有的功能的举例:
package org.westos.Demo;
//public void addFirst (E e): 将指定元素插入此列表的开头。
//
//public void addLast(E e): 将指定元素添加到此列表的结尾
//public E getFirst () :返回此列表的第一个元素。
//
//public E getLast(): 返回此列表的最后一个元素。
//public E removeFirst () :移除并返回此列表的第一个元素。
//
//public E removeLast():移除并返回此列表的最后一个元素。
import java.util.LinkedList;
public class Demo {
public static void main(String[] args) {
LinkedList<String> list = new LinkedList<>();
list.add("abc");
list.add("ccc");
//public void addFirst (E e): 将指定元素插入此列表的开头。
list.addFirst("AAA");
//public void addLast(E e): 将指定元素添加到此列表的结尾
list.addLast("BBB");
System.out.println(list);
//public E getFirst () :返回此列表的第一个元素。
System.out.println(list.getFirst());
//public E getLast(): 返回此列表的最后一个元素。
System.out.println(list.getLast());
//public E removeFirst () :移除并返回此列表的第一个元素。
System.out.println(list.removeFirst());
//public E removeLast():移除并返回此列表的最后一个元素。
System.out.println(list.removeLast());
System.out.println(list);
}
}