Java集合与数组是相似的,都用于保存一组对象,并提供一些操作来管理对象。然而,不同于数组的是,当添加或删除元素时集合的大小是可以自动变化的。Java集合不可以存放基本类型数据(比如int,long或double等),而是存放基本类型数据的包装类。

设计目标

Java 集合最核心的目标就是提供一套“小而美”的API,方便开发人员使用。为了保证核心接口足够小,顶层接口(指 CollectionMap)不会区分集合是否可变、是否可修改、是否可改变大小等细节。另外,接口定义的部分方法是可选的,如果实现时不支持该方法,直接抛出UnsupportedOperationException。

为了保证核心接口中方法足够少,核心接口应该只包含以下情况中的方法:

  • 基本操作,每个接口都会使用到的操作,比如添加、删除、插入、查找等
  • 由于非常严重的性能问题,某个重要的实现类要重写的方法

集合类型

Java 将集合分成两大类:

  • 最基本的 Collection 接口类
  • 不算真正意义上集合的 Map 接口类

Map 加入到集合框架中,大概是考虑到 Map 虽然是 key-value 形式,但是 Map 具有集合性质的操作,可以把 Map 当作集合来处理,即如果暂时忽略key与value之间的映射,那么key和value完全可以看作是两个集合。

Collection 接口类又可以分为:

  • List 接口
  • Set 接口
  • Queue 接口

综合起来,Java集合可以分为以下四种类型:

  • 保持插入顺序的List集合
  • 无序但不重复的Set集合
  • 带有优先顺序的Queue集合,比如FIFO。
  • 带有索引的Map集合

Java集合之整体概述的更多相关文章

  1. java 集合框架(一)概述

    一.概述 Java Collection Framework (JCF) 提供给我们一系列的类和接口,方便开发者处理集合对象. 在Java 2之前,Java是没有完整的集合框架的.它只有一些简单的可以 ...

  2. Java集合(0):概述

    下面是一个Java集合的简化图,我们可以看出,集合分Collection和Map两大部分: 接下来分别以下面几个章节介绍Java集合: Java集合(1):Collections工具类中的static ...

  3. 【由浅入深理解java集合】(一)——集合框架 Collction、Map

    本篇文章主要对java集合的框架进行介绍,使大家对java集合的整体框架有个了解.具体介绍了Collection接口,Map接口以及Collection接口的三个子接口Set,List,Queue. ...

  4. 【集合系列】- 初探java集合框架图

    一.集合类简介 Java集合就像一种容器,可以把多个对象(实际上是对象的引用,但习惯上都称对象)"丢进"该容器中.从Java 5 增加了泛型以后,Java集合可以记住容器中对象的数 ...

  5. java集合讲解

    java集合讲解 1.概述 集合类的顶级接口是Iterable,Collection继承了Iterable接口 常用的集合主要有 3 类,Set,List,Queue,他们都是接口,都继于Collec ...

  6. Java集合--概述

    目录 Java集合--概述 摘要 图示 正文 Java集合--概述 摘要 ​ 本文主要介绍集合的整体概念,并作为接下来Java集合实现类讲解的索引. 图示 ​ 这是在网上看到了这样一张图,感觉很清晰, ...

  7. 《java集合概述》

    JAVA集合概述: Collection: |---List有序的:通过索引就可以精确的操作集合中的元素.元素是可以重复的. List提供了增删改查的动作. 增加add(element) add(in ...

  8. Java集合系列:-----------01集合的整体框架

    内容来自:http://www.cnblogs.com/skywang12345/p/3308498.html Java集合是java提供的工具包,包含了常用的数据结构:集合.链表.队列.栈.数组.映 ...

  9. Java基础知识强化之集合框架笔记51:Map集合之Map集合的功能概述与测试

    1. Map集合的功能概述 (1)添加功能 V put(K key,V value):添加元素.这个其实还有另一个功能?先不告诉你,等会讲 如果键是第一次存储,就直接存储元素,返回null 如果键不是 ...

随机推荐

  1. 寄存器vs缓存vs硬盘

    对于多核cpu来说(一个处理器cpu上有多个核),L1/L2是各个核独自的,L3是多个核共享的 如下配置:一个处理器cpu,六个核.处理器速度为2.2GHz即电流每秒钟可以振荡22亿次.二级缓存256 ...

  2. django:资源网站汇总

    Django REST framework官网 http://www.sinodocs.cn/ django中文网 https://www.django.cn/

  3. 常用的python的内置库或者第三方库

    内置库:re,json,time,random,sys,os, 第三方库:转载: https://www.cnblogs.com/jiangchunsheng/p/9275881.htmlReques ...

  4. 一、Spring之组件注册-@Configuration&@Bean给容器中注册组件

    xml配置方式 首先我们创建一个实体类Person public class Person { private String name; private Integer age; private St ...

  5. ERP解析外围系统json数据格式

    外围系统调用ERP的WebService接口,将数据以json格式传到ERP,ERP解析json 1.创建java source jsp,提供java方法解析json数据 create or repl ...

  6. JavaScript进行WebSocket字节流通讯示例

    websocket进行通讯时,可以选择采用字符串或者字节流的传输模式.但在发送与接收时,需要考虑数据的分包,即分成一个个请求与响应消息.无论是采用哪种传输模式,都不免要遇到这个问题. 采用字符串传输时 ...

  7. Latex局部字体大小设置

    tex 设置字体大小命令由小到大依次为: \tiny \scriptsize \footnotesize \small \normalsize \large \Large \LARGE \huge \ ...

  8. mysql疑问

  9. [高清·非影印]Spring实战+SpringBoot实战+Spring微服务实战+SpringCloud微服务实战(全4本)

    ------ 郑重声明 --------- 资源来自网络,纯粹共享交流, 如果喜欢,请您务必支持正版!! --------------------------------------------- 下 ...

  10. WCF与Web API在应用上的选择

    在最近发布的Visual  Studio 2012及.NET 4.5中, 微软正式推出新的网络服务框架ASP.NET Web API.作为ASP.NET MVC  4的一部分,ASP.NET Web ...