码迷,mamicode.com
首页 > 其他好文 > 详细

Map集合

时间:2016-09-28 01:58:01      阅读:136      评论:0      收藏:0      [点我收藏+]

标签:

Map与Collection是并列的,都是集合框架的顶层。

Map集合也称为双列集合,Collection称为单列集合。

Map集合中存储的是键值对,一个Map集合中不能有重复的键。  C#中是Dictionary对象

Map

  |--HashTable   内部结构是哈希表,是同步的。JDK1.0  就有

    |--Properties用来存储键值对形式的数据,常用来做配置文件。可以和IO技术相结合。

  |--HashMap:内部结构是哈希表,不同步的

    |--LinkedHashMap

  |--TreeMap  内部结构是二叉树,不同步的,可以对map集合中的键进行排序。

 

HashTable   与HashMap区别:HashTable不允许null作为键,值,HashMap运许null作为键,值

 

早期集合的架构是:HashTable与Vector    都是同步的 

现在集合的架构是:Map 与Collection    都是不同步的

 

 

 

 

集合的一些技巧:

需要唯一吗?

  需要:Set

    需要指定顺序吗?

      需要:TreeSet

      不需要:HashTree

             如果是需要一个和存储顺序一致的用LinkedHashSet

  不需要:List

     需要频繁增删吗?

      需要:LinkedList

      不需要:ArrayList

 

List

  |--LinkedList

  |--ArrayList

 

Set

  |--TreeSet

  |--HashSet

    |--LinkedHashSet

 

后缀名是该集合所属体系,前缀名是该集合数据结构

 

 

看到Array,就要想到数组,就要想到角标。查询速度快

看到Link,就要想到链表,就要想到增删快,

看到Hash,就要想到哈希表,就要想到唯一性,就要想到元素需要覆盖hashCode方法和equals方法

看到Tree,就要想到二叉树,就要想到排序,就要想到两个接口,Comparator,Comparable

 

这些集合都是不同步的,

集合中只有Vector是同步的,

 

 

Iterator迭代过程中,集合不能增删操作,容易引发异常

List集合有个方法可以获得ListIterator。该接口中提供了增删的功能,可以在迭代过程中增删操作。只有List才有这个功能。ListIterator

Map集合

标签:

原文地址:http://www.cnblogs.com/lxboy2009/p/5914726.html

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