文档章节

java类集合详解

z
 zongze30
发布于 2015/02/27 13:19
字数 1218
阅读 25
收藏 0

阿里云携手百名商业领袖、技术大咖,带您一探行进中的数字新基建!>>>

一、系统简述:

1.集合框架总体结构

   Java中集合类定义主要是java.util.*包下面,常用的集合在系统中定义了三大接口,这三类的区别是

java.util.Set接口及其子类,set提供的是一个无序的集合;

java.util.List接口及其子类,List提供的是一个有序的集合;

java.util.Map接口及其子类,Map提供了一个映射(对应)关系的集合数据结构;

另外,在JDK5中新增了Queue(队列)接口及其子类,提供了于队列的集合体系。每种集合,都可以理解为用来在内存中存放一组对象的某种容器“---就像数组,就像前面我们自己定义的队列。

一、系统简述:

1.集合框架总体结构

   Java中集合类定义主要是java.util.*包下面,常用的集合在系统中定义了三大接口,这三类的区别是

java.util.Set接口及其子类,set提供的是一个无序的集合;

java.util.List接口及其子类,List提供的是一个有序的集合;

java.util.Map接口及其子类,Map提供了一个映射(对应)关系的集合数据结构;

另外,在JDK5中新增了Queue(队列)接口及其子类,提供了于队列的集合体系。每种集合,都可以理解为用来在内存中存放一组对象的某种容器“---就像数组,就像前面我们自己定义的队列。

2.Set接口和List接口

Set 是最简单的一种集合,它的对象不按特定方式排序,只是简单的把对象加入集合中,就像往口袋里放东西。对集中成员的访问和操作是通过集中对象的引用进行的, 所以集中不能有重复对象;而LIst的主要特征是其对象以线性方式存储,没有特定顺序,只有一个开头和一个结尾,当然,它与根本没有顺序的集是不同的。列 表在数据结构中分别表现为:数组和向量、链表、堆栈、队列。关于实现列表的集合类,是我们日常工作中经常用到的;从类图中可以看到,Set 和List都 是继承了Collection接口的子接口,而这类集合都有自己的实现;

3.java.util.Map接口

现实生活中,我们常会看到这样的一种集合:IP地址与主机名,***号与个人,系统用户用与系统用户对象等,这种一一对应的关系,就叫做映射。Java提供了专门的集合类用来存放这种对象关系的对象,即java.util.Map接口。Map是一个接口,有多种具体的实现类,常用的有HashMap和 Hashtable类实现。Map中存入的对象是一对一对的,即每个对象和它的一个名字(键)关联在一起

Map中存放的是两种对象,一种称为key(),一种称为value(),它们在在Map中是一一对应关系,这一对对象又称做Map中的一个Entry()Map中的键不能重复,但值可以重复。

二、详细阐述:

一、概述

    数据结构对程序设计有着深远的影响,在面向过程的C语言中,数据库结构用struch来描述,而在面向对象的编程中,数据结构是用类来描述的,并且包含有对该数据结构操作的方法。

    在Java语言中,Java语言的设计者对常用的数据结构和算法做了一些规范(接口)和实现(具体实现接口的类)。所有抽象出来的数据结构和操作(算法)统称为Java集合框架(Java Collection Framework)。

    Java程序员在具体应用时,不必考虑数据结构和算法实现细节,只需要用这些类创建出来一些对象,然后直接应用就可以了。这样就大大提高了编程效率。


二、集合框架的层次结构

Collection是集合接口

|――――Set子接口:无序,不允许重复。

|――――List子接口:有序,可以有重复元素。

区别:Collections是集合类

Set和List对比:

Set:检索元素效率低下,删除和插入效率高,插入和删除不会引起元素位置改变。

List:和数组类似,List可以动态增长,查找元素效率高,插入删除元素效率低,因为会引起其他元素位置改变。


Set和List具体子类:

Set

|――――HashSet:以哈希表的形式存放元素,插入删除速度很快。

List

|――――ArrayList:动态数组

|――――LinkedList:链表、队列、堆栈。

Array和java.util.Vector

Vector是一种老的动态数组,是线程同步的,效率很低,一般不赞成使用。


本文转载自:http://blog.csdn.net/xuejiaqiang88/article/details/43965905

z
粉丝 0
博文 7
码字总数 1170
作品 0
石家庄
私信 提问
加载中

评论(0)

这些喜闻乐见的Java面试知识点,你都掌握了吗?

最近分享了一些有关学习方法和经验的文章,得到了很多读者的反馈,恰巧大家在昨天推文中的投票里一直选择了“Java基础的复习方法”这一项,那么今天我们就谈谈这方面的内容吧。 其实对于Jav...

osc_0ltyoebk
2019/10/18
5
0
一份关于 Java、Kotlin 与 Android 的学习笔记

JavaKotlinAndroidLearn 这是一份关于 Java 、Kotlin 、Android 的学习笔记,既包含对基础知识点的介绍,也包含对一些重要知识点的源码解析,笔记的大纲如下所示: Java 重拾Java(0)-基础知...

叶应是叶
2018/08/08
0
0
Java学习资源 - J2SE

java.lang包教程 Java集合类详解 Java回顾之集合 Java回顾之序列化 Java回顾之反射 深入理解Java:类加载机制及反射 Java 下高效的反射工具包 ReflectASM 使用例解 老大难的 Java ClassLoad...

osc_03aaqmm8
2019/08/10
1
0
整理了一些博主的JAVA系列----列成目录方便学习

一.深入理解计算机系统(博主 YSOcean) 深入理解计算机系统(序章) Hello World 是如何运行的 存储设备 操作系统的抽象概念 汇编语言和机器语言 程序编码以及数据格式 操作数指示符和数据传送...

osc_gk4k1cnl
2019/03/22
6
0
阿里P8大牛手写的源码笔记:Java集合+Java多线程+MyBatis+Spring

Java集合源码笔记 Java集合是我认为在Java基础中最最重要的知识点了,Java集合是必须掌握的。我在实习/秋招面试的时候,只要是面到Java,那一定是少不了Java集合。 如何入门Java集合以及每个...

yelvgou9995
05/08
0
0

没有更多内容

加载失败,请刷新页面

加载更多

.NET中小数,浮点数和双精度之间的区别? - Difference between decimal, float and double in .NET?

问题: What is the difference between decimal , float and double in .NET? .NET中的decimal , float和double float什么区别? When would someone use one of these? 有人什么时候会使用......

fyin1314
今天
22
0
如何找出Windows上正在侦听端口的进程? - How can you find out which process is listening on a port on Windows?

问题: 如何找出Windows上正在侦听端口的进程? 解决方案: 参考一: https://stackoom.com/question/CXO/如何找出Windows上正在侦听端口的进程 参考二: https://oldbug.net/q/CXO/How-can...

技术盛宴
今天
10
0
OSChina 周三乱弹 —— 一家动物都快饿成标本了~

@黑觉非常君 :前天晚上9点开始睡觉,睡到昨天上午8点起床,昨天下午2点又睡,睡到下午7点多,晚上10点又困了,又睡,睡到今天上午8点,中途没醒过,怎么这么能睡,是不是快挂了。 能睡不是好...

小小编辑
今天
15
0
神剧推荐全剧最污片段精剪

神剧推荐,全剧最污片段精剪 豆瓣评分最高,脑洞最大,脑回路最曲折,恶搞无数经典,没有一条差评的神剧 整个系列完整版 到这里观看

a57571735
今天
22
0
pingan.

职位诱惑:金融,技术研发,技术攻关,大舞台大作为职位描述:职位诱惑:立志打造一支国内一流实盘量化交易框架开发团队职位描述:职位描述:负责实盘低时延量化交易框架及附属行...

MtrS
今天
15
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部