Java-集合基本知识点解析-之一

集合:
概念:对象的容器,存储对象的对象,可代替数组
特点:容器的工具,定义了多个对象进行操作的常用方法
位置:java.util.*;

  1. Collection体系集合:
    I. Collection父接口:该体系结构的根接口,代表一组对象,称为“集合”,每个对象都是该集合的“元素”。
    方法:
    boolean add(Object obj) //添加一个对象
    boolean addAll(Collection c) //将一个集合中的所有对象添加到此集合中
    void clear() //清空此集合中的所有对象
    Boolean contains(Object o) //检查此集合中是否包含o对象
    Boolean equals(Object o ) //比较此集合是否与指定对象相等
    Boolean isEmpty() //判断此集合是否为空
    boolean remove(Object o) //在此集合中移除o对象
    int size() //返回此集合中的元素个数
    Object[] toArray() //将此集合转换成数组
    II. List接口的特点:有序、有下标、元素可重复。
    在这里插入图片描述
    III.Set接口的特点:无序、无下标、元素不可重复。

  2. List子接口:
    I. 特点:有序、有下标、元素可以重复。
    有序的Collection(也成为序列),此接口的用户对每个元素的插入位置进行精准地控制。用户可以根据元素的整数索引(在列表中的位置)访问元素,并搜索列表中的元素
    与set不同,列表通常允许重复的元素。更确切的讲,列表通常允许满足 e1.equals(e2)的元素对e1和e2,并且如果列表本身允许null元素的话,通常它们允许多个null元素。难免有人希望通过在用户尝试插入重复元素时抛出运行时异常的方法来禁止重复的列表,但我们希望这种用法越少越好。
    List接口在iterator、add、remove、equals和hashCode方法的协定上加了一些其他的约定,超过了Collection接口中指定的约定。为方便起见,这里也包括了其他继承方法的声明。
    list接口提供了4种对列表元素进行定位(索引)访问方法。列表(像Java数组一样)是基于0的。注意,这些操作可能在和某些实现(列如 LinkedList类)的索引值成比例的时间内执行。因此,如果调用者不知道实现,那么在列表元素上迭代通常优于用索引遍历列表。
    List接口提供了特殊的迭代器,称为LIstIterator,除了允许Iterator接口提供的正常操作外,该迭代器还允许元素插入和替换,以及双向访问。还提供了一个方法获取从列表中指定位置开始的列表迭代器。
    List接口提供了两种搜索指定对象的方法。从 性能的观点来看,应该小心使用这些方法。在很多实现中,它们将执行高开销的线性搜索。
    List接口提供了两种在列表的任意位置高效插入和移除的多个元素的方法。
    注意:尽管允许把自身作为元素包含在内,但建议要特别小心,在这样的列表上,equals和hashCode方法不再是定义良好的。

II. 继承可父接口提供的共性方法,同时定义了一些独有的与下标相关的操作方法。

  1. List实现类:
    I. JDK8的ArrayList,实际初始长度是0
    II. 首次添加元素时,需要实际分配数组空间,执行数组扩容操作
    III. 真正向数组中插入数据,(Lazy懒)用的时候再创建,或再加载,有效的降低无用内存的占用
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值