Set、List、Map的在编程时的区别

就学习经验,浅谈Java中的Set,List,Map的区别,对JAVA的集合的理解是想对于数组:

数组是大小固定的,并且同一个数组只能存放类型一样的数据(基本类型/引用类型),JAVA集合可以存储和操作数目不固定的一组数据。 所有的JAVA集合都位于 java.util包中! JAVA集合只能存放引用类型的的数据,不能存放基本数据类型。推荐学习尚硅谷·Java基础视频教程

JAVA集合主要分为三种类型:

1、Set(集)

2、List(列表)

3、Map(映射)

Collection 接口 :Collection是最基本的集合接口,声明了适用于JAVA集合(只包括Set和List)的通用方法。 Set 和List 都继承了Conllection,Map

Collection接口的方法:

boolean add(Object o)      :向集合中加入一个对象的引用

void clear():删除集合中所有的对象,即不再持有这些对象的引用

boolean isEmpty()    :判断集合是否为空

boolean contains(Object o) : 判断集合中是否持有特定对象的引用

Iterartor iterator()  :返回一个Iterator对象,可以用来遍历集合中的元素

boolean remove(Object o) :从集合中删除一个对象的引用

int size()       :返回集合中元素的数目

Object[] toArray()    : 返回一个数组,该数组中包括集合中的所有元素

关于:Iterator() 和toArray() 方法都用于集合的所有的元素,前者返回一个Iterator对象,后者返回一个包含集合中所有元素的数组。

Iterator接口声明了如下方法:

hasNext():判断集合中元素是否遍历完毕,如果没有,就返回true

next() :返回下一个元素

remove():从集合中删除上一个有next()方法返回的元素。

Set(集合): Set是最简单的一种集合。集合中的对象不按特定的方式排序,并且没有重复对象。 Set接口主要实现了两个实现类:

HashSet: HashSet类按照哈希算法来存取集合中的对象,存取速度比较快 
TreeSet :TreeSet类实现了SortedSet接口,能够对集合中的对象进行排序。

Set 的用法:存放的是对象的引用,没有重复对象

Set 的 add()方法是如何判断对象是否已经存放在集合中?

List(列表): List的特征是其元素以线性方式存储,集合中可以存放重复对象。

List接口主要实现类包括:

1、ArrayList() : 代表长度可以改变得数组。可以对元素进行随机的访问,向ArrayList()中插入与删除元素的速度慢。

2、LinkedList(): 在实现中采用链表数据结构。插入和删除速度快,访问速度慢。

对于List的随机访问来说,就是只随机来检索位于特定位置的元素。 List 的 get(int index) 方法放回集合中由参数index指定的索引位置的对象,下标从“0” 开始。最基本的两种检索集合中的所有对象的方法:

1: for循环和get()方法:

2: 使用 迭代器(Iterator):

Map(映射):

Map 是一种把键对象和值对象映射的集合,它的每一个元素都包含一对键对象和值对象。 Map没有继承于Collection接口 从Map集合中检索元素时,只要给出键对象,就会返回对应的值对象。

Map 的常用方法:

1、添加,删除操作:

Object put(Object key, Object value): 向集合中加入元素

Object remove(Object key): 删除与KEY相关的元素

void putAll(Map t):  将来自特定映像的所有元素添加给该映像

void clear():从映像中删除所有映射

2、查询操作:

Object get(Object key):获得与关键字key相关的值 。Map集合中的键对象不允许重复,也就说,任意两个键对象通过equals()方法比较的结果都是false.,但是可以将任意多个键独享映射到同一个值对象上。

Conllections: 集合实用类 。Conllections提供了供JAVA集合实用的静态方法。

想学习更多编程语言教程知识请登录e良师益友网。

时间: 2025-01-02 17:29:06

Set、List、Map的在编程时的区别的相关文章

TCP和UDP编程时区别

一.TCP与UDP的区别 基于连接与无连接 对系统资源的要求(TCP较多,UDP少) UDP程序结构较简单 流模式与数据报模式 TCP保证数据正确性,UDP可能丢包 TCP保证数据顺序,UDP不保证 部分满足以下几点要求时,应该采用UDP 面向数据报方式 网络数据大多为短消息 拥有大量Client 对数据安全性无特殊要求 网络负担非常重,但对响应速度要求高 具体编程时的区别 socket()的参数不同 UDP Server不需要调用listen和accept UDP收发数据用sendto/rec

TCP与UDP在socket编程中的区别 (网络收集转载)

http://blog.chinaunix.net/uid-26421509-id-3814684.html 一.TCP与UDP的区别 基于连接与无连接  对系统资源的要求(TCP较多,UDP少)  UDP程序结构较简单  流模式与数据报模式  TCP保证数据正确性,UDP可能丢包  TCP保证数据顺序,UDP不保证  部分满足以下几点要求时,应该采用UDP 面向数据报方式 网络数据大多为短消息  拥有大量Client  对数据安全性无特殊要求  网络负担非常重,但对响应速度要求高  具体编程时

TCP与UDP在socket编程中的区别

一.TCP与UDP的区别 基于连接与无连接  对系统资源的要求(TCP较多,UDP少)  UDP程序结构较简单  流模式与数据报模式  TCP保证数据正确性,UDP可能丢包  TCP保证数据顺序,UDP不保证  部分满足以下几点要求时,应该采用UDP 面向数据报方式 网络数据大多为短消息  拥有大量Client  对数据安全性无特殊要求  网络负担非常重,但对响应速度要求高  具体编程时的区别 socket()的参数不同  UDP Server不需要调用listen和accept  UDP收发数

linux下Eclipse进行C编程时动态链接库的生成和使用

引用 http://linux.chinaitlab.com/soft/864157.html 欢迎进入Linux社区论坛,与200万技术人员互动交流 >>进入 一.创建动态链接库1.创建工程new->project->c++ project选择Shared Library->Empty Project.输入工程名a,点击finish,完成工程的创建. 2.编写代码在windows下封装动态链接库时对要封的函数要用__declspec(dllexport)来标明,在linux

程序员编程时喝什么

最近我越来越觉得喝咖啡对我而言没什么用.咖啡的提神作用来得快,去得更快. 白天喝一杯咖啡提神后,往往会令我更加困乏.这是恶性循环.咖啡让人兴奋,无法觉察到身体其实很疲劳. 意识到这一点后,我时常在想,对于像我们这样的程序员来说,还有什么方法能给我们充充电. <<<-------------  <_< 向左看 我们中有一些人是功能饮料的重度使用者.有人靠喝茶,还有人依赖糖分.不要忘记了,包括酒精在内的这类成分在刺激提高我们创造力的同时也会让人精神涣散. 在我的职业生涯中,以下这

串口编程时,出现Cannot open /dev/ttyS0 Permission denied解决

在ubuntu14.04上,通过qt creator进行串口编程时出现: trying to open file "/dev/ttyS0" could not open file: 权限不够 port open is false jgc> ls -al /dev/ttyS0 crw-rw---- 1 root dialout 4, 64 Mar 23 21:00 /dev/ttyS0 jgc> echo xyzzy >/dev/ttyS0 bash: /dev/tty

码农-如果当初学习编程时能有人给我这些忠告该多好

在你学习编程之前思考一下你的目标 要知道编程大多时候就是在创造,当你有最终目标感时道路会更加的清晰.如果你的目标是"学习编程"而不是更具体的学习哪种程序及如何让你的生活更好,那么你可能会发现这不过是一次令人沮丧的实践. 我有点惭愧地承认我学习计算机科学的部分动机是为了证明我聪明,及我想干"聪明人"的工作.我也喜欢思考数学和理论(<哥德尔.艾舍尔.巴赫:集异璧之大成 >这本书在我易受影响的年纪进入了我的脑海),编程是一个不错的选择.当然这并不足以使我坚持这

让你提前认识软件开发(41):编程时首先达到正确性,其次考虑效率

第3部分 软件研发工作总结 编程时首先达到正确性,其次考虑效率 在实际的软件开发项目中,经常会遇到产品开发周期很短的问题.也就是说,开发人员需要在"质量"和"速度"之间做出权衡.具体到程序代码,就存在到底是先考虑实现功能(即保证程序的正确性),还是要一步到位把事情做好(即保证程序的正确性的同时,兼顾其效率)? 在网上,有关这方面的讨论也非常的多.微软亚洲研究院研究员刘未鹏老师写过一篇文章<编程的首要原则>(http://mindhacks.cn/2009

【转载】我多希望我学编程时,有人教我这些事!

1.学编程之前,想清楚自己想写什么. 学习编程基本就是在学习建造东西.如果你知道你到底想造什么,你的编程学习之路将会豁然开朗. 如果你的目标只是“学习如何编程”,却不知道自己到底想写出什么样的程序,也不知道这些程序将如何让你的生活变得更美好,你很有可能会感到编程学习令你沮丧受挫. 说起来还有点丢脸,我最早想学习编程,是因为我想证明我聪明.并且,我也想做一份属于聪明人的工作.我还喜欢思考数学及理论.因此,编程怎么看都和我很搭. 但是这些想法都不足以延续我的编程学习热情.直到有一天,当我终于发现如何