您当前的位置:学院动态 > 行业资讯 > 正文
java集合类总结
 
时间:2017-09-04 17:30    来源:顽石科技    编辑:www.mhsilh.com.cn
 
  java集合类主要负责保存、盛装其他数据,因此集合类也称容器类。java集合类分为:set、list、map、queue四大体系。
       java集合类主要负责保存、盛装其他数据,因此集合类也称容器类。java集合类分为:set、list、map、queue四大体系。其中set代表无序、不可重复的集合;list代表有序、可重复的集合。map代表具有映射关系的集合;queue代表队列集合。

 
java集合

 
  java集合类主要由两个接口派生:Collection和Map,是集合框架的根接口。下面是其接口、子接口和实现类的继承树。
 
  java集合类主要负责保存、盛装其他数据,因此集合类也称容器类。java集合类分为:set、list、map、queue四大体系。其中set代表无序、不可重复的集合;list代表有序、可重复的集合。map代表具有映射关系的集合;queue代表队列集合。
 
  java集合类主要由两个接口派生:Collection和Map,是集合框架的根接口。下面是其接口、子接口和实现类的继承树。
 
  集合类还提供了一个工具类Collections。主要用于查找、替换、同步控制、设置不可变集合。
 
  上面是对java集合类的一般概述,下面就set、list、map三者之间的关系进行剖析。
 
  Set与Map的关系。Map集合中所有key集中起来,就组成了一个set集合。所以Map集合提供SetkeySet()方法返回所有key组成的set集合。由此可见,Map集合中的所有key具有set集合的特征,只要Map所有的key集中起来,它就是一个Set集合,这就实现了Map到Set的转换。同时,如果把Map中的元素看成key-value的set集合,也可以实现从Set到Map之间的转换。HashSet和HashMap分别作为它们的实现类。两者之间也挺相似的。HashSet的实现就是封装了HashMap对象来存储元素。它们的本质是一样的。类似于HashSet和HashMap的关系,其实TreeMap和TreeSet本质也差不多,TreeSet底层也是依赖TreeMap实现。
 
  Map与List的关系。把Map的key-value分开来看,从另一个角度看,就可以把Map与List统一起来。
 
  Map集合是一个关联数组,key可以组成Set集合,Map中的value可以重复,所以这些value可以组成一个List集合。但是需要注意的是,实质Map的values方法并未返回一个List集合。而是返回一个不存储元素的Collection集合,换一种角度来看对List集合,它也包含了两组值,其中一组就是虚拟的int类型的索引,另一组就是list集合元素,从这个意思上看,List就相当于所有key都是int型的Map。
 
  下面讲解几个相似类之间的差异。
 
  ArrayList和LinkedList。ArrayList是一种顺序存储的线性表,其底层是采用数组实现的,而LinkedList是链式存储的线性表。其本质就是一个双向链表。对于随机存储比较频繁的元素操作应选用ArrayList,对于经常需要增加、删除元素应该选用LinkedList。但总的来说ArrayList的总体性能还是优于LinkedList。
 
  HashSet与HashMap的性能选项。主要有两个方面:容量和负载因子(尺寸/容量)。较低负载因子会增加查询数据的性能,但是会降低hash表所占的内存开销。较高负载因子则反之,一般对数据的查询比较频繁,所以一般情况下初始容量应该大一点,但也不能太大,否则浪费内存空间。

转载请注明:http://www.mhsilh.com.cn/html/2017/xingyezixun_0904/558.html
? 必中一位 汇顶科技股票行情 炒股用什么app 宁夏11选五跨度 广东36选7玩法及中奖规则 云南十一选五助手 牧原股份股票 今天股票跌还是涨 黑龙江p62最新开奖 赌博输钱人真实故事 黑龙江6 1中了四个数 好当家历史最低和最高 山西快乐十分真准网 加拿大快乐8域名过期 赛车pk10多少分钟一期 亚洲彩票 福建11选5APP