这篇博客主要是总结一下Java中集合框架List接口的用法。
1.集合框架
(1)集合框架的作用
在实际开发中,我们经常会对一组相同类型的数据进行统一管理操作。到目前为止,我们可以使用数组结构,链表结构二叉树结构来实现
数组最大的问题在于数组中的元素的个数是固定的,要实现动态数组,必竟还是比较麻烦,自己实现链表或者二叉树结构来管理对象更是不方便
在JDK1.2版本之后,JAVA完整的提供了类集合的概念,封装了一组强大的、非常方便的结合框架API,让我们在开发中大大提高了效率
集合分为三大接口:
Collection Map Iterator
集合框架的接口和类在Java.util包中
(2)集合框架结构图
(3)Collection接口
Collection层次结构中的根接口。Collection表示一组对象,这些对象也称为collection的元素。一些collection允许有重复的元素,而另一些则不允许。一些collection是有序的,而另一些则是无序的。JDK不提供此接口的任何直接实现:它提供更具体的子接口(如set和List)实现。此接口通常用来传递collection,并在需要最大普遍性的地方操作这些collection
2.List接口
public interface List
extends Collection
有序的collction。此接口的用户可以对列表中每个元素的插入位置进行精确控制,用户可以根据元素的整数的索引(在列表中的位置)访问元素,并搜索列表中的元素。
List接口的注意事项
1.允许重复元素
2.必须是有序
3.允许null元素
(1)ArrayList
public class ArrayList
extends AbstractKList
implements List
public static void arrayList()
{
//创建ArrayList对象,默认的容量为10,超过10个会自动扩充
ArrayList list =new ArrayList();
//添加元素
list.add(10);
list.add("小白");
list.add(true);
list.add(11);
list.add(12);
list.add(13);
list.add(14);
list.add(15);
list.add(16);
list.add(17);
list.add(18);
list.add(19);
list.add(20);
list.add(5,50);
System.out.println("第五个元素"+list.get(5));
System.out.println("一共有元素"+list.size());
//清除所有元素
//list.clear();
//System.out.print("一共有元素"+list.size());
//判断列表中是是否含有某个元素
System.out.println(list.contains(20));
//检查列表是否为空
System.out.println(list.isEmpty());
//删除指定索引的元素,返回的删除的对象
System.out.println(list.remove(0));
}
(2)Vector
public class Vector
extends AbstractList
implements List,RandomAccess,Cloneable,Serializable
Vector类可以实现可增长的对象数组。与数组一样,它包含可以使用整数索引进行访问的组件。但是,Vector的大小可以根据需要增大或缩小,以适应创建Vector后进行添加或者移除项操作
Vector注意事项
1.使用动态对象数组实现
2.默认构造方法初始化容量为10
3.扩充方式:如果有指定的增量,当前容量+增量
如果没有增量:原容量*2
4.线程安全
public static void vector()
{
//默认大小为10
Vector vector= new Vector();
vector.add("纯纯");
vector.add("梦梦");
vector.add("爱爱");
}
(3)LinkedList
public class LinkedList
extends AbstractSequentialList
implements List,Deque,Cloneable,Serializable
List接口的链接列表实现。实现所有可选的列表操作,并且允许所有元素。除了实现List接口外,LinkedList类还为在列表的开头以及结尾get,remove和insert元素提供了统一的命名方法
LinkedList注意事项
1.使用双向链表实现
2.优点:适合插入与删除操作
public static void linkedlist(){
LinkedList linkedList=new LinkedList();
linkedList.add("凤凤");
linkedList.add("萌萌");
linkedList.add("傻傻");
}