Java复习之集合框架List接口

这篇博客主要是总结一下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("傻傻");
    }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值