Java基础之简单聊聊集合类(关于集合类的总结和比较)

 前言:

集合类是平时使用比较多的一个基础类库,是Java保存对象的一种方式。正因为平时用的比较多,说的也是头头是道,趁着好好总结和归纳一下还是大有益处的。

拆分:

一.两个鼻祖接口

1)Conllection。一个独立元素的序列,其中的元素都要服从一条和多条规则,所有的单列集合类都是实现其接口,像List,Set,Queue.....

主要方法:像添加一组元素addAll()等

2)Map。一组成对的“键—值”对象,允许使用键来查询值.

二.主要实现类

(1)List也是一个接口,可以将元素维护在特定序列中可以存储重复元素,不过相比较conllection的基础上添加了大量的方法,比如在List中中间插入和移除元素。

两个常用实现类

  • 基本的ArrayList,它长于随机访问元素,但是在List的中间插入和移除元素时比较慢,底层是一个数组
  • LinkedList,则可以通过较低的List中间进行插入和删除元素 ,优化了顺序访问但是随机访问方面相对比较慢,但是特性会比比ArrayList丰富一些,可以移除增加首位元素。

其特性还有使用了其用作,栈、队列,或双端队列的方法。

(2)Stack

栈通常是指“后进先出”的容器,就是最后一个压入栈的元素,第一个弹出栈,而LinkedList具有能够直接实现栈的所以功能的方法,因此可以将LinkedList作为栈使用。

(3)Set

Set不保存重复元素,与Conllection完全一样的接口,因此没有额外的功能(只是与conllection行为不同,是一个多态和继承的典型应用)

  1. HashSet,出于对速度原因的考虑,使用散列函数,其维护的顺序与以下两个实现类也是不同的。
  2. TreeSet,是将元素存储在红—黑树数据结构中,所以储存的元素时有序的。
  3. LinkeHashSet因为查询速度的原因也使用了散列函数,但是使用了链表来维护元素的插入顺序。

(4)Map 将对象映射到其他对象

  HashMap,用来快速访问

 TreeMap,保持了键始终处于排序状态

 LinkedHashMap,保持了元素的插入顺序,但也通过散列提高了访问速度。

(5)Queue

队列是一种先进先出的容器,进入的顺序和取出的顺序是相同的,而LinkedList提供了方法支持队列的行为,并且实现了Queue接口,因为LinkedList可以用作Queue的一种实现

迭代器

(1)迭代器遍历并选择序列中的对象,是一个轻量级的对象,创建它的代价小,在java中,Iterator只能单向移动,使用next()获取序列中的下一个元素,使用hashNext()检查序列中是否还有元素,使用remove()将迭代器新近返回的元素删除,这些的前提是使用iterator()返回一个迭代器对象。

(2)ListInterator是一个更加强大的迭代器子类,不过只能用来各种List类的访问,基本迭代器是单向移动的而ListInterator是可以双向移动的。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值