1、java 容器类类库的用途是“保存对象”,并将其划分为两个不同的概念:

1)Collection。一个独立元素的序列,这些元素都服从一条或多条规则。List 必须按照插入的顺序保存元素,而Set不能有重复元素。Queue 按照排队规则来确定对象产生的顺序(通常与他们被插入的顺序相同)。

2)Map。一组成对的“键值对”对象,允许使用键来查找值。ArrayList允许使用数字来查找值。因此在某种意义上讲,他将数字和对象关联在了一起。映射表允许我们使用另一个对象来查找某个对象,他也被称为“关联数组”,因为他将某些对象与另外一些对象关联在了一起;或者被称为“字典”,因为你可以使用键对象来查找值对象,就像在字典中使用单词来定义一样。Map是强大的编程工具。

2、Java 提供了大量持有对象的方式:

1)数组将数字与对象联系起来。他保存类型明确的对象,查询对象时,不需要对结果进行类型转换。他可以是多维的,可以保存基本类型的数据。但是,数组一旦生成,其容量就不能改变。

2)Collection 保存单一的元素,而 Map 保存相关联的键值对。有了 Java 的泛型,你就可以制定容器中存放的对象类型,因此你就不会将错误类型的对象放置到容器中,并且在从容器中获取元素时,不必进行类型转换。各种 Collection 和各种 Map 都可以在你向其中添加更多的元素时,自动调整其尺寸。容器不能持有基本类型,但是自动包装机制会仔细的执行基本类型到容器中所持有的包装器类型之间的双向转换。

3)像数组一样,List 也建立数字索引与对象的关联,因此,数组和 List 都是排好序的容器。List 能够自动扩充容量。

4)如果要进行大量的随机访问,就使用 ArrayList;如果要经常从表中间插入或删除元素,则应该使用 LinkedList。

5)各种 Queue 以及栈的行为,由 linkedList 提供支持。

6)Map 是一种将对象(而非数字)与对象xiang'guan'lian相关联的设计。HashMap 设计用来快速访问,而 TreeMap 保持“键”始终处于排序状态,所以没有 Hashmap快。LinkedHashMap 保持元素插入的顺序,但是也通过散列提供了快速访问能力。

7)Set 不接受重复元素。HashSet提供最快的查询速度,而 TreeSet 保持元素处于排序状态。LinkedHashSet 以插入顺序保存元素。

8)新程序中不应该使用过时的 Vector、HashTable 和 Stack。

java编程思想-java集合总结-基本概念的更多相关文章

  1. 33.JAVA编程思想——JAVA IO File类

    33.JAVA编程思想--JAVA IO File类 RandomAccessFile用于包括了已知长度记录的文件.以便我们能用 seek()从一条记录移至还有一条:然后读取或改动那些记录. 各记录的 ...

  2. java编程思想-java中的并发(二)

    二.共享受限资源 有了并发就可以同时做多件事情了.但是,两个或多个线程彼此互相干涉的问题也就出现了.如果不防范这种冲突,就可能发生两个线程同时试图访问同一个银行账户,或向同一个打印机打印,改变同一个值 ...

  3. java编程思想-java中的并发(四)

    五. 新类库中的构件 Java SE5的java.util.concurrent引入了大量设计用来解决并发问题的新类.学习使用它们将有助于编写出更加简单而强壮的并发程序. 1. CountDownLa ...

  4. java编程思想-java中的并发(一)

    一.基本的线程机制 并发编程使我们可以将程序划分为多个分离的.独立运行的任务.通过使用多线程机制,这些独立任务中的每一个都将由执行线程来驱动. 线程模型为编程带来了便利,它简化了在单一程序中同时jia ...

  5. java编程思想-java IO系统

    一.输入和输出 编程语言的I/O类库中常使用流这个抽象概念,它代表任何有能力产出数据的数据源对象或者是有能力接收数据的接收端对象."流"屏蔽了实际的I/O设备中处理数据的细节. J ...

  6. java编程思想-java中的并发(三)

    三.终结任务 1. 在阻塞时终结 线程状态 一个线程可以处于以下四种状态之一: 1)新建(new):当线程被创建时,他只会短暂的处于这种状态.此时,他已经分配了必须的系统资源,并执行了初始化.此刻线程 ...

  7. java编程思想-java注解

    注解(也被称为元数据)为我们在代码中添加信息提供了一种形式化的方法,使我们可以在稍后某个时刻非常方便的使用这些数据. 一.定义注解 注解的定义看起来很像接口的定义.事实上,与其他任何Java接口一样, ...

  8. java编程思想——java IO系统

    一.什么是IO io在本质上是单个字节的移动.而流能够说是字节移动的载体和方式,它不停的向目标处移动数据.我们要做的就是依据流的方向从流中读取数据或者向流中写入数据. 二.java中支持IO操作的库类 ...

  9. java 编程思想-java运算符--曾经不太明确的

    1.java 运算符 主要是逻辑运算符和按位运算符;移位运算符-name tecmint.txt 逻辑运算符:And(&&) ; OR(||);Not(!) 按位运算符:And(&am ...

随机推荐

  1. 7z压缩文件时排除指定的文件

    分享一个7z压缩文件时排除指定文件类型的命令行,感觉很有用: 7z a -t7z d:\updateCRM.7z d:\updateCRM\*.* -r -x!*.log -x!*bak a:创建压缩 ...

  2. C程序中对时间的处理——time库函数详解

    包含文件:<sys/time.h> <time.h> 一.在C语言中有time_t, tm, timeval等几种类型的时间 1.time_t time_t实际上是长整数类型, ...

  3. 15-grep 简明笔

    在文件中搜索模式 grep [options] pattern [file-list] 参数 pattern为正则表达式,file-list为grep要搜索的普通文本文件的路径名列表 选项 -c    ...

  4. 3-cd 命令总结

  5. 云平台 为什么推荐使用小VM 而不是大VM独占宿主机的方式部署游戏服?

    近期公司X游戏项目,提了一个游戏VM资源的需求,是 64GB RAM + 30Core CPU 的VM规格,而一个VM部署10个游戏服.而我们云平台推荐的VM规格为 4 Core CPU + 4GB ...

  6. vmware 虚拟机克隆之后配IP重启网络失败

    在日常实验中,我新安装了一个虚拟机(全新的)node1,然后为了实验,又克隆了一天虚拟机node2 然后我给两台机器设置IP和主机名node1 :  192.168.220.128 node2 : 1 ...

  7. 【BZOJ 4568】【SCOI 2016】幸运数字

    写了一天啊,调了好久,对拍了无数次都拍不出错来(数据生成器太弱了没办法啊). 错误1:把线性基存成结构体,并作为函数计算,最后赋值给调用函数的变量时无疑加大了计算量导致TLE 错误2:像这种函数(A, ...

  8. Java算法-冒泡排序

    冒泡排序是一种简单的排序算法.它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来.走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成.这个算法的名字 ...

  9. ThinkPHP的RBAC

    基于角色的访问控制(Role-Based Access Control) 在RBAC中,权限与角色相关联,用户通过成为适当角色的成员而得到这些角色的权限. ThinkPHP通过5张表实现权限控制 th ...

  10. Java中Comparable和Comparator区别小结

    一.Comparable简介 Comparable是排序接口.若一个类实现了Comparable接口,就意味着该类支持排序.实现了Comparable接口的类的对象的列表或数组可以通过Collecti ...