码迷,mamicode.com
首页 > 编程语言 > 详细

Java的集合类

时间:2014-11-09 01:09:58      阅读:256      评论:0      收藏:0      [点我收藏+]

标签:style   blog   http   io   ar   使用   java   sp   div   

在Java的java.util包中,有一批类被称为集合类

集合类,顾名思义,就是存放对象的集合的类,可以是数组形式【ArrayList】,也可以是链表形式【LinkedList】,也可以是两种形式结合【HashMap】。

Java的集合类的父类是Collection接口,主要分为三大类:List、Map、Set。

其中,List是一组元素的集合,最常用到的为ArrayList、LinkedList;

Map是一组成对对象【键值对】的集合,根据Key来存取Value,最常用到的为HashMap和LinkedList;

Set是一个真正数学意义上的元素的集合,其中不包含重复的元素,最常用到的为HashSet和TreeSet。

bubuko.com,布布扣


其中,在JDK的源码中,Set的底层实现都是使用对应的Map来实现的,将存取于Set中的元素作为Map的Key,使用同一个对象作为Value。例如,HashSet中是使用了一个HashMap来作为内部存储实现,

bubuko.com,布布扣

bubuko.com,布布扣

TreeSet也是如此,内部使用了一个TreeMap来存放元素,图就不贴了。


ArrayList和LinkedList的区别前面已经写过博客。

HashMap和TreeMap的区别:

HashMap是基于散列表实现,内部存储结构为邻接表【数组+链表】;

TreeMap是基于红黑树实现,内部存储结构为红黑树。

因此存入HashMap的键值对要求key必须提供hashCode()方法作为散列依据,此方法为Object类中已有;

而对于TreeMap来说,要么在初始化TreeMap时,提供一个Comparator作为比较键大小的依据,或者要求key的类必须实现Comparable。如果这两个条件都没有满足,那向Treemap中put的时候就会报出异常。



Java的集合类

标签:style   blog   http   io   ar   使用   java   sp   div   

原文地址:http://blog.csdn.net/xuefeng0707/article/details/40930525

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!