美文网首页
Java数据结构总结之Map

Java数据结构总结之Map

作者: 曉明儿 | 来源:发表于2017-09-06 20:39 被阅读0次

Java中使用Map接口描述映射结构,映射Map是一个独立的接口,描述的是键key-值value的对应关系,Map不允许键重复,并且每个键只能对应这个值。

一、映射集(Map)常用方法

1.size():获取Map的尺寸(即Map包含数据元素key-value对的总数)。

2.put(Object key, Object value):向Map中添加数据元素,key为键,value为值,键和值是一一对应关系。

3.remove(Object key):根据键key从Map中移除数据元素。并返回被删除元素的值value。

4.get(Object key):通过Map的key值获取对应的value值。

5.containsKey(Object obj):判断当前Map中是否包含键obj,如果包含返回true,否则返回false。

6.keySet():返回由Map中的所有键组成懂得集合。

7.entrySet():将Map中的键-值对存入集合,该集合的数据元素是Entry类的对象,Entry类具有两个成员变量key和value来描述原Map中的键和值。

8.values():获取Map中的全部值组成一个Collection对象。

HashMap(散列图)

1.HashMap通过hash算法排布存储Map中的键(key),HashMap也是最常用的图状数据结构,其存储的数据元素是成对出现的,也就是说每一个键(key)对应一个值(value)。

2.HashMap中的数据元素不是按照我们添加的顺序排布的,并且其内存模式也不是连续的,但是其key值得排布是根据Hash算法获得的,所以在数据元素的检索方面速度还是较快的。

3.HashMap不能直接装入迭代器,必须将HashMap的所有键key装入迭代器,再进行遍历,或者是使用Entry类,将所有数据元素转化为Entry的集合进行处理。

注意:HashMap不允许出现重复的键(key),并且每个键(key)只能对应一个值(value)。

Map转化Entry集合

/**  定义一个接口回调hMap对象

   *设置键为Integer类型,值为String类型 */

Map<Integer, String > hMap = new HashMap<Integer, String>();

/** 向HashMap中添加数据元素(key为整型,value为字符串型)*/

hMap.put(1,"aaa");

hMap.put(2,"bbb");

hMap.put(3,"ccc");

/** 将HashMap转化成Entry的集合

   *Entry是一个类,该类具有成员变量key和成员变量value */

Set<Entry<Integer, String>> hSet = hMap.entrySet();

Iterator<Entry<Integer, String>> it = hSet.iterator();

while(it.hasNext()){

       Entry<Integer, String> type = (Entry<Integer,String>)   it.next();

       int k = type.getKey();

       String v = type.getValue();

       System.out.println(k + "-"  + v);

}

TreeMap(树状映射集)

1.TreeMap是一种有序的映射关系,即每对键key-值value在TreeMap中是有序排列的,并且这个序列遵循自然序列,当我们向TreeMap插入新的数据元素时,TreeMap可能会重新排序,所以TreeMap中的任何元素在整个映射组中是不固定的。

2.当我们的TreeMap键(key)是自定义类时,需要在自定义类中重写compareTo方法,以提供比对形式,否在TreeMap不能对用户自定义额类型的键(key)进行正确的树状排序,也就不能对整个键值对起到有效的排序效果。

TreeMap的特殊方法:

1.firstKey():获取TreeMap第一个Key值

2.lastKey():获取TreeMap最后一个key值

3.headMap(end):获取TreeMap中从第一个开始到end-1位置的所有元素,组成一个排序映射(SortedMap)

4.tailMap(start):获取TreeMap中从start开始到最后一个元素之间的所有元素,组成一个排序映射(SortedMap)

相关文章

  • Java 数据结构之 Map 学习总结

    Java 数据结构之 Map 学习总结 今天总结学习一下键值映射关系Map。 先了解下Map Map 是一种把键对...

  • Java数据结构总结之Map

    Java中使用Map接口描述映射结构,映射Map是一个独立的接口,描述的是键key-值value的对应关系,Map...

  • 10.7 关于Java的Map的九个问题

    通常,Map是由一组键值对组成的数据结构,每个键只能在Map中出现一次。 本文总结了如何使用Java Map及其实...

  • Java 数据结构之 Map 学习总结

    先了解下Map Map 是一种把键对象和值对象映射的集合,它的每一个元素都包含一对键对象和值对象。 Map没有继...

  • Go语言复合数据类型之map

    map概念 map是使用非常广泛且设计精妙的数据结构之一,在Java里面,我们使用最多的数据结构之一就是map。m...

  • 美团大牛剖析面试最常见问题之Java集合框架

    总览图 Java集合概览 说说List,Set,Map三者的区别? 集合框架底层数据结构总结 如何选用集合? 为什...

  • HashMap的几个灵魂拷问

    之前是写过一篇HashMap的原理文章的,比较基础 java基础之数据结构3(Map篇)[https://www...

  • Java数据结构之Map

    一、HashMap HashMap的数据结构 在java编程语言中,最基本的结构就是两种,一个是数组,另一个是模拟...

  • JavaSE基础知识学习-----数据结构

    Java数据结构 Java中的数据结构主要分为Collection和map两个接口(接口只提供抽象方法,并不提供实...

  • 复习

    数据结构 数据结构 集合常见数据结构:集合,链表,队列,数组,栈,映射java中:List列表,Set集合,Map...

网友评论

      本文标题:Java数据结构总结之Map

      本文链接:https://www.haomeiwen.com/subject/zbbvjxtx.html