List包括List接口以及List接口的所有实现类。因为List接口实现了Collection接口,所以List接口拥有Collection接口提供的所有常用方法,又因为List是列表类型,所以List接口还提供了一些适合于自身的常用方法。
在List集合中,我们常用到ArrayList和LinkedList这两个类。
其中,ArrayList底层通过数组实现,随着元素的增加而动态扩容。而LinkedList底层通过链表来实现,随着元素的增加不断向链表的后端增加节点。
ArrayList是Java集合框架中使用最多的一个类,是一个数组队列,线程不安全集合。
它继承于AbstractList,实现了List, RandomAccess, Cloneable, Serializable接口。
(1)ArrayList实现List,得到了List集合框架基础功能;
(2)ArrayList实现RandomAccess,获得了快速随机访问存储元素的功能,RandomAccess是一个标记接口,没有任何方法;
(3)ArrayList实现Cloneable,得到了clone()方法,可以实现克隆功能;
(4)ArrayList实现Serializable,表示可以被序列化,通过序列化去传输,典型的应用就是hessian协议。
ArrayList基本操作
public static void main(String[] args) {
//创建ArrayList集合:
List<String> list = new ArrayList<String>();
System.out.println("ArrayList size:"+list.size());
//添加功能:
list.add("Hello");
list.add("world");
list.add(2,"!");
System.out.println("ArrayList size:"+list.size());
//修改功能:
list.set(0,"my");
list.set(1,"name");
System.out.println("ArrayList size:"+list.toString());
//获取功能:
String element = list.get(0);
System.out.println(element);
}
LinkedList基本操作
public static void main(String[] args) {
List<String> linkedList = new LinkedList<String>();
System.out.println("LinkedList size:" + linkedList.size());
// 添加功能:
linkedList.add("my");
linkedList.add("name");
linkedList.add("is");
linkedList.add("jiaboyan");
System.out.println("LinkedList size:" + linkedList.size());
// 修改功能:
linkedList.set(0, "hello");
linkedList.set(1, "world");
System.out.println("LinkedList size:" + linkedList.toString());
// 获取功能:
String element = linkedList.get(0);
System.out.println(element);
}
以上就是java List使用的一些问题。