Java中集合类的区别,请高手详解

作者&投稿:昔琬 (若有异议请与网页底部的电邮联系)
在Java中,什么是集合类,跟普通类有什么区别?~

简单的说,集合类有list列,set集和map映射 三大类!

Set(集):集合中的对象无排列顺序,并且没有重复的对象.

List(队列):集合中的对象按照索引的顺序排列,可以有重复的对象。

Map(映射):集合中的每一个元素都是一对一对的,包括一个key对象,一个Value对象(一个Key指向一个Value).集合中没有重复的key对象,但是vaulue对象可以重复.
集合类是进行集合操作的。

查API文档啊。方法都差不多 存值取值 Set用迭代取值,List可以用迭代也可以用get(下标值),因为List是有顺序的,Set没有顺序。Set的add()方法返回一个boolean值,因为不能重复嘛,重复放东西就返回false。Map要特殊一点,用put放东西。有key 和value。通过key值来取对应的value值 Map还有一个方法EntrySet() 可以得到key和value映射的Set集合,然后通过getKey()和getValue()来取值。。List接口的实现类一般用ArrayList,看名字就知道跟数组差不多了,不过数组的大小是固定的,ArrayList大小可变。数组通过length属性得到长度,集合是通过size()方法得到大小。Set接口的实现类一般用HashSet ,Map接口的实现类一般用HashMap。还一个TreeSet,它会根据从小到大排序集合中的对象 最后还是那句话 查文档,再自己做做实验什么都知道了

补充点:vector 和hashtable 这两个实现类对应的就是ArrayList 和 hashtable ,只不过这两个是线程安全的,如果是多个线程要访问集合,就用这两个,如果是一个线程访问的话就用后面两个线程不安全的,效率更高点

ArrayList 实现List接口 ,随着向 ArrayList 中不断添加元素,其容量也自动增长
Vector向量 不过我是不太喜欢这个类
HashMap实现Map接口--可以说内存就是一个HashMap
HashTable实现一个哈希表,该哈希表将键映射到相应的值
Set一个不包含重复元素的容器
HashMap, HashTable都是“Key-Value对”形式的
Vector和ArrayList区别
Vector和ArrayList Vector和ArrayList在使用上非常相似,都可用来表示一组数量可变的对象应用的集合,并且可以随机地访问其中的元素。
Vector的方法都是同步的(Synchronized),是线程安全的(thread-safe),而ArrayList的方法不是,由于线程的同步必然要影响性能,因此,ArrayList的性能比Vector好。
当Vector或ArrayList中的元素超过它的初始大小时,Vector会将它的容量翻倍,而ArrayList只增加50%的大小,这样,ArrayList就有利于节约内存空间。

Hashtable和HashMap的区别
Hashtable和HashMap它们的性能方面的比较类似 Vector和ArrayList,比如Hashtable的方法是同步的,而HashMap的不是。

ArrayList和LinkedList的区别
对于处理一列数据项,Java提供了两个类ArrayList和LinkedList, ArrayList的内部实现是基于内部数组Object[], 所以从概念上讲,它更象数组,但LinkedList的内部实现是基于一组连接的记录,所以,它更象一个链表结构,所以,它们在性能上有很大的差别。
从上面的分析可知,在ArrayList的前面或中间插入数据时,你必须将其后的所有数据相应的后移,这样必然要花费较多时间,所以,当你的操作是在一列 数据的后面添加数据而不是在前面或中间,并且需要随机地访问其中的元素时,使用ArrayList会提供比较好的性能
而访问链表中的某个元素时,就必须从链表的一端开始沿着连接方向一个一个元素地去查找,直到找到所需的元素为止,所以,当你的操作是在一列数据的前面或中间添加或删除数据,并且按照顺序访问其中的元素时,就应该使用LinkedList了。
如果在编程中,1,2两种情形交替出现,这时,你可以考虑使用List这样的通用接口,而不用关心具体的实现,在具体的情形下,它的性能由具体的实现来保证。
配置集合类的初始大小
在Java集合框架中的大部分类的大小是可以随着元素个数的增加而相应的增加的,我们似乎不用关心它的初始大小,但如果我们考虑类的性能问题时,就一定要考虑尽可能地设置好集合对象的初始大小,这将大大提高代码的性能。
比如,Hashtable缺省的初始大小为101,载入因子为0.75,即如果其中的元素个数超过75个,它就必须增加大小并重新组织元素,所以,如果你 知道在创建一个新的Hashtable对象时就知道元素的确切数目如为110,那么,就应将其初始大小设为110/0.75=148,这样,就可以避免重 新组织内存并增加大小。

Array 是普通数组,容量不可变,貌似不在集合类包里
Vector 是容量可变的数组

List Set Map 都是接口

ArrayList,LinkedList 都是 List接口的实现,和数组基本差不多,可用操作比数组多
Map 存放的是键-值对 用键做索引

http://www.yesky.com/405/1752905.shtml

可以去看看,有关集合的说明

集合类型主要有3种:set(集)、bailist(列表)和map(映射)。
1、List(有序、可重复)
List里存放的对象是有序的,同时也是可以重复的,List关注的是索引,拥有一系列和索引相关的方法,查询速度快。因为往list集合里插入或删除数据时,会伴随着后面数据的移动,所有插入删除数据速度慢。
2、Set(无序、不能重复)

Set里存放的对象是无序,不能重复的,集合中的对象不按特定的方式排序,只是简单地把对象加入集合中。

3、Map(键值对、键唯一、值不唯一)

Map集合中存储的是键值对,键不能重复,值可以重复。根据键得到值,对map集合遍历时先得到键的set集合,对set集合进行遍历,得到相应的值。


AVA声音文件在哪
在你的AVA安装目录下打开avaGame\\Content\\Music 比如我的是D:\\战地之王\\avaGame\\Content\\Music 里面有一个文件,是背景音乐的集合,可以用暴风影音或者QVOD之类的软件打开 希望可以帮到你 还有不懂的再问啊 呵呵

谁知道AVA Player v2.62是什么
录播系统播放软件 V2.62 不用安装,小巧而强大!及少内存占用集合了以下超多功能:万年历、世界时钟、定时运行、定时关机(关机仅需3秒!)、限时用机、休息提醒(可锁定系统)、备忘录、系统热键、世界时间、光驱控制、文件定期清理、网络校时、语音报时等,并支持自定义软件皮肤,能以5种界面同时存在,即:...

AVA步枪的FN-FNC好用吗?
FN-FNC 此枪在韩服中不算很热门,但评价不错,威力适中,稳定性好,一般可以连射4发,保证了稳定的同时射速也不慢 .可以说能和AK47抗衡,并且能击败AK47的好枪,它的出现可以说就是来化解掉AK47独霸国服AVA步枪手枪械的神话的,此枪稳定非常好,远射也不错.威力也大,改装零件更多.比AK47改装空间更...

AVA里步兵用什么枪最好!要求机动性能,稳定性能跟射速跟瞄准度!_百度知 ...
玩过CF之后,大部分人都抱着M4A1不放,就是因为它超强的稳定性 另外就是因为在CF中,AK47被无限放大的后坐力 在战地之王中AK47有所改观,前三发子弹完全精准。。在加上它的威力,新手也能用 所以首选应该是AK47 这个枪不论在生存,爆破,还是团战,都非常好用 (口水一下其他的哈)如果是侦查...

C语言期末复习试题赶紧复习起来
10下列叙述中正确的是--- A、C语言中既有逻辑类型也有集合类型 B、C语言中没有逻辑类型但有集合类型 C、C语言中有逻辑类型但没有集合类型 D、C语言中既没有逻辑类型也没有集合类型答案:D一一知识点:常量、变量和标识符 11,当c的值不为0时,在下列选项中能正确将c的值赋给变量a、b的是--- A、c...

ava.lang.nullpointerexception
服务器可以用这个应答代码来表示呼叫正在转发到另一个目的地集合。1.4 182 Queued当呼叫的对方暂时不能接收呼叫的时候,并且服务器决定将呼叫排队等候,而不是...没有未这个应答的消息体定义MIME类型。这些地址选择也应当在Contact头域中列出(20.10节)。不同于HTTP,SIP应答可以包含多个Contact头域或者一个Contact头域中...

星际宝贝每一集的名称
莉罗和史迪奇让她的朋友们在强霸的宇宙飞船上集合,一起逃离这场灾难。但出人意料的是,朋友们都没来,来的是几个先前被改造过的试验品。莉罗认为只有毁掉小行星才能得救。于是,莉罗,史迪奇,强霸,独眼霹雳和实验品们一起登上了飞船,向小行星驶去。他们发现行星上面竟然有生命。强霸坚持要炸掉行星,...

在JAVA中定义数组时,可不可以一开始不设定数组的长度?
定义时当然可以:例如 int[] a;但是要把它初始化成为一个真正意义上的数组就必须设定长度: int [] a = new int[10]; 这时就只能改变数组里的数值而不能改变它的长度了.Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念,因此Java语言具有...

腾讯明年出新FPS《战争前线》德国研发,又是虚幻3引擎,这与AVA会...
AVA失败了。国人还是不太习惯这种注重画面的游戏。其实这种竞技类射击游戏看得无非是三点:射击的快感,等级和枪械的乐趣,和朋友一起玩。CF之所以会这么火,无非是集合了以上三点。不注意这些,无论哪种新的FPS进来,都会失败的。之前FPS比如狼队啊,MZK军魂啊,这几点都做得不如CF好。尤其是CF的战队...

小沈阳 视频 集合
《关东大先生》中扮演“小奉天”。 [编辑本段]从艺经历 2009春晚小品《不差钱》小沈阳剧照1995年至1998...访谈类: 小沈阳给天健网友拜年:http:\/\/v.ku6.com\/show\/cEFPXbzSlv9Flbri.html 元宵被毙:http:\/...毕福剑采访小沈阳:http:\/\/www.tudou.com\/programs\/view\/xaVaibw_Tpo\/ 《杨澜访谈录》赵本山专访:htt...

木兰县15915683091: Java中集合类的区别,请高手详解 -
石妻甲状: ArrayList 实现List接口 ,随着向 ArrayList 中不断添加元素,其容量也自动增长 Vector向量 不过我是不太喜欢这个类 HashMap实现Map接口--可以说内存就是一个HashMap HashTable实现一个哈希表,该哈希表将键映射到相应的值 Set一个不包...

木兰县15915683091: Java集合类List/Set/Map的区别和联系 -
石妻甲状: 常用的集合类有一下几种: List结构的集合类:ArrayList类,LinkedList类,Vector类,Stack类 Map结构的集合类:HashMap类,Hashtable类 Set结构的集合类:HashSet类,TreeSet类 Queue结构的集合:Queue接口 HashMap和Hashtable的区...

木兰县15915683091: 有没有谁知道JAVA中的一些集合类的区别,我看怎么用发都差不多,那在什么地方要用什么集合类呢! -
石妻甲状: JAVA中所有的集合全都实现了iterator()方法,也就是说你用集合就可以用迭代器遍历集合.主要跟你说这么几大类常用的,其他的比较不常用的甚至是过时的东西我在这里就不说了.一、Set 这个集合存放的是无序的、可变长度的、不重复...

木兰县15915683091: java 中数组和集合的区别 -
石妻甲状: 数组Array和集合 1.区别:数组是大小固定的,并且同一个数组只能存放类型一样的数据(基本类型/引用类型) JAVA集合可以存储和操作数目不固定的一组数据. 若程序时不知道究竟需要多少对象,需要在空间不足时自动扩增容量,则需要使用容器类库,array不适用.2. 联系:使用相应的toArray()和Arrays.asList()方法可以相互转换.

木兰县15915683091: Java中Set、List、Map集合类(接口)的特点及区别.分别有哪些常用实现类. -
石妻甲状: list与Set、Map区别及适用场景1、List,Set都是继承自Collection接口,Map则不是2、List特点:元素有放入顺序,元素可重复 ,Set特点:元素无放入顺序,元素不可重复,重复元素会覆盖掉,(注意:元素虽然无放入顺序,但是元素在set中的...

木兰县15915683091: 请问Java中的容器类与集合有什么区别? -
石妻甲状: 容器(Container)Spring 提供容器功能,容器可以管理对象的生命周期、对象与对象之间的依赖关系,您可以使用一个配置文件(通常是XML),在上面定义好对象的名称、如何产生(Prototype 方式或Singleton 方式)、哪个对象产生之后必...

木兰县15915683091: java中list和map的区别 -
石妻甲状: 1、Java中的集合包括三大类,它们是Set、List和Map,它们都处于java.util包中,Set、List和Map都是接口,它们有各自的实现类.Set的实现类主要有HashSet和TreeSet,List的实现类主要有ArrayList,Map的实现类主要有HashMap和TreeMap. ...

木兰县15915683091: java语言中集合与数组的区别? -
石妻甲状: 对JAVA的集合的理解是相对于数组,区别:1)数组是大小固定的,并且同一个数组只能存放类型一样的数据(基本类型/引用类型)2)JAVA集合可以存储和操作数目不固定的一组数据. 3)JAVA集合只能存放引用类型的的数据,不能存放基本数据类型;数组可以.(注意基本类型int,double等等,但是Integer,Double等是类类型了) 附加:所有的JAVA集合都位于 java.util包中! JAVA集合主要分为三种类型:Set(集) List(列表) Map(映射)

木兰县15915683091: JAVA中的几个集合的区别在哪?
石妻甲状: 都说完了, 呵呵 提醒一下,如果使用Set的时候, 首选HashSet啊,(默认首选~)

木兰县15915683091: java里的数组和集合的区别是什么? -
石妻甲状: 数组是JAVA语言内置的数据类型,它是一个线性的序列,所以它可以快速的访问其他的元素.但是速度是要有代价的,当你创建了一个数组之后,它的容量就固定了,而且在其生命周期里是不能改变的.还有一点,JAVA里面的数组是会做边界...

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网