前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Java集合类总结

Java集合类总结

作者头像
Mr.RisingSun
发布2018-01-12 18:02:19
1.1K0
发布2018-01-12 18:02:19
举报
文章被收录于专栏:移动端开发移动端开发

前言:

这篇准备好好总结一下Java的集合类,在顺便带上Arrays,把这几者之间的关系说清楚,在java.util包中提供了一些集合类,这些集合类又被称作容器,这时候可能我们就联想到了就是Arrays,他们之间不同的地方就是:数组的长度是固定的,集合的长度是可变的;数组是用来存贮基本类型的数据,集合用来存放对象的引用,最常用的大家也都是知道,List集合,Set集合,还有Map集合。这其中呢List集合和Set集合继承了Collection接口,他们的关系如下图,按自己的理解这样,要是有不正确的地方告诉我哈:

下面这样是更细致完整点的,谢谢同行:

 Collection接口:

它是层级结构中根接口,构成它的单位称为元素。一般情况下不会直接使用它,上面的结构图我们也可以看出,List和Set方法都是继承与它的,所以也就继承它的方法,常见的我们下面也做了总结:

下面是上面代码的打印日志:

List接口:

    List是继承与Collection的,所以Collection的方法List都可以用,不过有两个方法特别注意的:

    (1): get(int index) 获得指定位置处的元素

    (2): set(int index , Object obj) 将集合中指定位置处的对象修改为对象obj. 尤其这个方法,我刚开始在想Javay应该不可能不会有替代某位置元素的方法,找了许久,但没想到是这个set方法。

    List接口的常用两个实现类,一个是ArrayList,一个是LinkedList,一个一个说说:

    ArrayList: 可变的数组,允许保存所有的元素,当然就包括null。它的优点是:可以快速的随机访问index处的对象 缺点是:指定位置插入删除是速度慢

    LinkedList:采用链表结构保存对象,它的优缺点和上面我们说的ArrayList的也就相反了。

    看看ArrayList最基本的使用:

下面是打印的结果:

Set接口:

 Set结合中的对象不按照特定的方法排序,只是简单的把对象加入到集合中,但是很重要的一点就是Set集合中不能包含重复的对象,Set和List一样是继承自Collection的。

   Set接口常用的实现类有HashSet和TreeSet 

   HashSet类实现了Set接口,有哈希表(实际上是HashMap)支持,它不保证Set的迭代顺序,特别是它不包证高顺序的持久不变。 此类允许使用null。

   TreeSet类不仅实现了Set接口,还实现了java.util.SortedSet接口。因此,TreeSet类实现的Set集合在遍历集合时可以按照自然顺序排序,也可以按照指定比较器递增排序,也就是可以通过比较器对TreeSet类实现的Set集合中的对象进行排序,下面定义了一个StudentClass类,重点是这类要想添加到TreeSet实现的集合当中的话就得实现Comparable接口,实现compareTo方法:

下面是它的调用和打印的东西,我们粘贴出来,在最后会是打印的日志:

随后是打印的日志,可以看到是没有问题的:

Map接口:

Map集合没有继承Collection接口,它提供的Key到Value的映射,Map中不能包含相同的Key,每一个Key只能映射一个Value,下面是Map的基本使用,其实举一反三,这时候也大概知道怎么写怎么用了;

    建议使用HashMap集合,因为HashMap类实现Map集合,原因也是它的优点,集合添加和删除映射关系的效率更高。HashMap是基于哈希表的Maori实现。HashMap通过哈希码对内部的映射关系进行快速的查找,而TreeMap类的映射关系存在一定顺序,如果希望Map集合对象也存在一定的顺序,就用TreeMap.

后面的Arrays的使用因为在总结算法的学习,在自己的《算法学习》分类中再总结它的具体使用,从Arrays的冒泡和选择排序开始。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2017-03-23 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
容器服务
腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档