Collection

本文介绍了Java中的集合框架,重点讲解了Collection接口及其子接口List和Set。List接口的实现类如ArrayList、LinkedList和Vector,Set接口的实现类如HashSet和TreeSet。还对比了ArrayList和LinkedList的数据结构和性能特点,并概述了Set集合的无序不可重复特性及其两个主要实现类的存储方式。

Collection 是java中集合的总接口

Collection包含的子接口有

1. List(接口)有序可重复

        List接口包含的实现类:

        ArrayList   里面写好了List接口所有的抽象方法都已经实现好了,功能写好 底层是数组

        LinkedList   里面有自己独有的方法 底层是链表

        Vector

2. Set(接口)  无序不可重复

        Set接口包含的实现类

        HashSet   Set的实现类 底层是Hash算法

        TreeSet  Set的实现类 底层是二叉树

 Collection中主要的方法有

增:
    boolean add(E e);  添加数据的
    boolean addAll(Collection<? extends E> c);  将一个集合添加到另外的一个集合中
删:
    boolean remove(Object obj); 删除指定的元素
    boolean    removeAll(Collection<?> c)删除指定集合中包含的所有此集合的元素(可选操作)
    void clear();  清空集合中所有的元素
    
查:
    int size();  集合中元素的个数
    Object[]  toArray();将集合转为数组
    
    boolean contains(Object obj);在集合中是否包含一个obj元素
    boolean containsAll(Collection<? extends E> c); 判断一个集合是否是另外一个结合的子集合
    boolean  isEmpty(); 判断一个集合是否为空

List接口中主要的方法

增:
    boolean  add(int index, E e);  在指定索引下标的位置插入一个数据
    boolean  addAll(int index, Collection<? extends E> c);
    在指定下标为位置 插入另外一个集合
删:
    E remove(int index); 通过索引删除数据,返回的是被删除的元素
改:
    E  set(int index, E e);在指定下标的元素  被别的元素替代,返回值是被替代吗的元素
查:
    size()
    toArray()
    contains()
    isEmpty()

E get(int index);  获取指定的下标的元素
int  indexOf(Object obj); 通过元素获取指定的下标的
int  lastIndexOf(Object obj);获取指定元素的最后一次出现的位置
List<E>  subList(int startIndex, int endIndex); 截取集合中的一段

ArrayList和LinkedList的区别

1.ArrayList底层是数组,LinkedList底层是链表
2.ArrayList在随机取数据的时候效率高于LinkedList   
3.ArrayList在删除 和插入 的时候效率低于LinkedList  
4.ArrayList会自己扩容  需要预留一定空间的
5.LinkedList 是存储数据的节点的信息以及节点信息的内存的指针

set集合

set集合也是用来存储数据的

set集合父接口collection接口

set存储数据的时候是效果是无序的不可重复的

set接口下面有两个实现类

hashset:底层是hash值进行存储的,如果hash值一样的就无法催到集合中

treeset:底层是二叉树,对存入的数据进行自然排序

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值