Map集合

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Map集合相关的知识,希望对你有一定的参考价值。

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集合的主要内容,如果未能解决你的问题,请参考以下文章

Kotlin集合操作 ⑤ ( Map 集合 | 获取 Map 值 | Map 遍历 | 可变 Map 集合 )

Kotlin集合操作 ⑤ ( Map 集合 | 获取 Map 值 | Map 遍历 | 可变 Map 集合 )

Java基础集合篇03-Map集合

Map集合(双列集合)

Map集合

集合Map可变参数Collections