java集合框架梳理

数据结构中最基本的两个结构是数组和链表(物理结构);

数组:整块内存,通过下标访问;

链表:Node{item,pre,next};

集合框架:接口,实现类,算法类;

Collection(顶接口):element

List(子接口):可重复,有序,有下标;

        ArraryList(实现类):动态数组;

        LinkedList(实现类):链表,java是双项链表,有前驱和后继;

        Vector(实现类):

                Stack(实现类):栈,先进后出,push,pop,peek;


Queue(子接口):先进先出

        Deque(子接口):双端队列,任一端可进可出;

                LInkedList(可实现列表,队列,双端队列,栈类);

                ArrayDeque(实现类);

                priorityQueue(实现类):优先队列;

Set(子接口):不重复,无序,无下标;

        HashSet(实现类):

                1.Set接口最重要的实现类;

                2.元素是否重复一般通过equals来判断(也可以用hashcode),可在类中重写equals方法;

                3.判断是否重复的时间复杂度O(1);contain(Object)

        LinkedHashSet(实现类):内部增加了一个链表来保持顺序;

        SoretedSet接口:排序;

                TreeSet(实现类):内部是一个二叉树,可使用比较器;

HashSet与TreeSet中的元素都是不重复的,但判断依据不同;

        HashSet是通过hashcode和equals方法来判断;

        TreeSet是通过比较器来判断是否重复;

目前使用最多的实现类是

ArrayList

HashSet

Hashmap;

Map(顶接口):key-value

        Map中存储的数据是成对出现的;

        每个key对应一个value,key是不能重复的;

        通过key来查询value时,时间复杂度是o(1);

                HashMap(实现类):Key-values;

                put(key,value);

                remove(key);

                get(Key);

                contains();

                size();

                isEmpty();

                clear():

 遍历:

keys;

 -------------------------------------------------------------------------------
算法类:

        Collections;

        Arrays;

比较器

Comparable:内部比较器,自然排序;

Comparator:外部比较器,自定义规则;

遍历元素

1.for each

2.iterator(集合的子接口):迭代器,遍历某个集合中的数据;

        iterable(实现类):可迭代的;

所有集合都有一个iterator方法,即获得迭代器;

iterator

LinkedHashSet:也是一个Hashset,内部增加了一个链表来维护顺序;

SortedSet:是Set的子接口,在原有的功能下,增加了排序的能力;即SortdeSet是排序的Set;

        常用方法:

        E first():返回第一个(最小)元素;

        E last():返回最大的元素;

        SortedSet<E> headSet(E e):返回比e小的元素的集合;

        Sortset

TreeSet

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值