什么是java集合框架

其实就是java类库提供的一套相当完整的各种数据结构的实现。通常也可以叫做“容器”。比如List、Set、Queue和Map。

使用类型安全的容器

通过使用泛型,即给容器添加类型参数,可以在编译期防止将错误类型的对象放置到容器中。例如:
可以声明一个

ArrayList<Person> list = new ArrayList<Person>();
list.add(new Person());
list.add(new Dog())

此时,编译器可以阻止将Dog对象加入到该容器中。同时,在从容器中取出时,也不用做强制类型转换了。

集合框架简图


其中点线框表示接口,实线框表示具体的实现类。空心箭头代表实现或是继承关系。实心箭头表示某个类可以生成箭头所指向的类的对象。

集合类库主要接口简述

  1. Collection
    是一个根接口,是对各种集合类的一种抽象。大部分数据结构都实现了 Collection 接口中的方法。

  2. Map
    存储“键值对”的集合。可以通过键来查找值。最常用的比如HashMap。

  3. List
    允许存储重复的元素,在Collection的基础上增加了大量的方法,可以在中间插入和删除元素等。一般来说是有序的(元素添加的顺序)。

  4. Set
    不允许有重复的元素。Set具有和Collection完全一样的接口,因此没有额外的功能。其实Set集合的一般实现类也是有序。比如HashSet是按散列函数来维护自身有序性。TreeSet和LinkedHashSet分别使用了红黑树和链表来维护元素的插入顺序

  5. Iterator
    迭代器是一个对象,主要的工作是遍历并选择序列中的对象,而不用关心该序列底层的结构。创建它的代价很小。
    因此使用迭代器来遍历获取集合元素是一种不错的选择。

Collection接口方法概览


其中,有几个比较常用的方法,比如

  • 方法add()添加一个元素到集合中
  • addAll()将指定集合中的所有元素添加到集合中
  • contains()方法检测集合中是否包含指定的元素
  • toArray()方法返回一个表示集合的数组。
  • 另外,Collection中有一个iterator()函数,它的作用是返回一个Iterator接口。

JAVA集合框架(一)-综述的更多相关文章

  1. Java 集合框架(一)—— 接口综述

    前言:凡是使用 Java 编程的,几乎肯定会用到集合框架,比如 ArrayList.LinkedList.HashSet.HashMap 等,集合框架的代码绝对是大师级的实现,所以为了更好地使用集合框 ...

  2. 【集合框架】Java集合框架综述

    一.前言 现笔者打算做关于Java集合框架的教程,具体是打算分析Java源码,因为平时在写程序的过程中用Java集合特别频繁,但是对于里面一些具体的原理还没有进行很好的梳理,所以拟从源码的角度去熟悉梳 ...

  3. java集合框架综述

    一.集合框架图 简化图: 说明:对于以上的框架图有如下几点说明 1.所有集合类都位于java.util包下.Java的集合类主要由两个接口派生而出:Collection和Map,Collection和 ...

  4. (二)java集合框架综述

    一集合框架图 说明:对于以上的框架图有如下几点说明 1.所有集合类都位于java.util包下.Java的集合类主要由两个接口派生而出:Collection和Map,Collection和Map是Ja ...

  5. Java 集合框架综述,这篇让你吃透!

    一.集合框架图 简化图: 说明:对于以上的框架图有如下几点说明 1.所有集合类都位于java.util包下.Java的集合类主要由两个接口派生而出:Collection和Map,Collection和 ...

  6. Java集合框架的总结

    本篇文章先从整体介绍了Java集合框架包含的接口和类,然后总结了集合框架中的一些基本知识和关键点,并结合实例进行简单分析.当我们把一个对象放入集合中后,系统会把所有集合元素都当成Object类的实例进 ...

  7. java集合框架之java HashMap代码解析

     java集合框架之java HashMap代码解析 文章Java集合框架综述后,具体集合类的代码,首先以既熟悉又陌生的HashMap开始. 源自http://www.codeceo.com/arti ...

  8. java集合框架1

    1.综述 所有集合类都位于java.util包下.集合中只能保存对象(保存对象的引用变量).(数组既可以保存基本类型的数据也可以保存对象). 当我们把一个对象放入集合中后,系统会把所有集合元素都当成O ...

  9. Java集合框架的知识总结(1)

    说明:先从整体介绍了Java集合框架包含的接口和类,然后总结了集合框架中的一些基本知识和关键点,并结合实例进行简单分析. 1.综述 所有集合类都位于java.util包下.集合中只能保存对象(保存对象 ...

随机推荐

  1. 【玩转SpringBoot】翻身做主人,一统web服务器

    寄人篱下的日子 一直以来受传统影响,我们的web工程总是打成war包,然后放入tomcat的webapps目录下面. 如下图01: 当tomcat启动时,会去解压war包,然后运行web工程.这大家都 ...

  2. Kubernetes 集群升级docker版本

    Kubernetes 集群升级docker版本   原则:升级完一台正常后再接着升下一台. Work Node 一.迁移上的pod(保证业务,但期间会出现抖动) kubectl drain $NODE ...

  3. 后缀数组SA入门(史上最晦涩难懂的讲解)

    参考资料:victorique的博客(有一点锅无伤大雅,记得看评论区),$wzz$ 课件(快去$ftp$%%%),$oi-wiki$以及某个人的帮助(万分感谢!) 首先还是要说一句:我不知道为什么我这 ...

  4. C# List集合 GroupBy分组

    var grpBalance = listBalance.GroupBy(m => new { m.MerChantId, m.Name}).Distinct().Select(t => ...

  5. JS 操作符、控制流程、循环、字符串/数组方法

    操作符 算术运算符:+ .- . * . / . %.++.-- 赋值运算符:= .+=.-=. *=./=.%= 比较运算符:>.>=.<.<=.!=.==.===(全等,数 ...

  6. DC8: Vulnhub Walkthrough

    镜像下载链接: https://www.vulnhub.com/entry/dc-8,367/#download 主机扫描: http://10.10.202.131/?nid=2%27 http:/ ...

  7. Things 3 for Mac是什么?如何使用?

    为大家介绍一款实用的效率管理软件“Things 3 for Mac”,它通过使用标签和智能过滤条,东西结合了强大的功能和简单性,Leopard风格的来源列表可以快速轻松地进行对焦.与一个美丽的用户界面 ...

  8. css3 中的渐变

    虽说css3 都已经使用多年了,但是关于css3的渐变用的很少.今天遇见了,就学习了一下. 首先我们打开ps,新建一个画布,选择渐变工具,这个时候我们能够看到顶栏上面的渐变类型如下 第一个我们选中的是 ...

  9. centos6.5安装supervisor

    centos6.5安装supervisor,有很多种方法,但是有很多坑,为了以后不重复踩坑,这里记录一下. 一.如果用yum install supervisor, 默认安装的是2.1.9版本,2.x ...

  10. 中移动物联手机端APP软件

    https://open.iot.10086.cn/doc/book/device-develop/multpro/sdk-doc-tool/APP.html