`

Map与HashMap两种定义方式的区别

阅读更多
Map<bluh> map1 = new HashMap<bluh>();
HashMap<bluh> map2 = new HashMap<bluh>();
 

 

1.灵活性 定义为Map之后更灵活 今后才有可能在需要的时候替换为HashMap之外的其它实现如TreeMap等,同时如Joshua Bloch等大师也倡导面向接口编程 code to interfaces

 

2.有得必有失,第一种的tradeoff就是无法调用HashMap特有的方法,也就是存在于Map接口中所定义的方法之外的HashMap自己的方法,当然同时也是HashMap未override的方法

 

more to check out this link on StackOverflow:

http://stackoverflow.com/questions/1348199/java-hashmap-vs-map-objects

 

分享到:
评论

相关推荐

    List、ArrayList、Vector及map、HashTable、HashMap分别的区别

    HashMap和Hashtable是两种常用的Map实现类。HashMap是一个非同步的Map实现类,它允许null,即null value和null key。Hashtable是一个同步的Map实现类,它不允许null。 List、ArrayList、Vector及map、HashTable、...

    HashMap和HashTable的区别和不同

    在Java编程中,`HashMap`与`HashTable`作为两种常用的数据结构,经常被用来存储键值对数据。尽管它们在功能上相似,但在实现细节、性能表现以及使用场景方面存在显著差异。本文将深入探讨两者之间的区别,帮助读者更...

    HashMap排序

    这里展示了两种不同的实现方式: - 使用`TreeMap`:创建一个`TreeMap`对象并传入`ByValueComparator`作为构造函数参数,然后将`HashMap`的所有键值对放入`TreeMap`中。 - 使用`Collections.sort()`:创建一个包含...

    java 使用web service读取HashMap里的数值

    - **接口设计**:在本例中,我们定义了一个名为`HelloMap`的类,它包含了两个方法:`setMap`和`getMap`。这两个方法均接受一个`HashMap, String&gt;`作为参数,并返回同样的`HashMap`对象。这样的设计使得我们可以轻松...

    HashMap 分析

    负载因子定义为HashMap中已有元素的数量与哈希表容量(即HashMap中桶的数量)的比值。负载因子越大,说明HashMap中存储的元素越多,每个桶中存储的链表越长,需要遍历的时间越长,冲突的概率也越大。反之,负载因子...

    Java容器有两种基本类型Collection 和 Map

    Java 容器的两种基本类型:Collection 和 Map Collection 和 Map 是 Java 中的两种基本容器类型,它们都可以用来存储和管理对象,但它们有着不同的特点和用途。 Collection 是一种聚集对象的容器,每个位置只能...

    groovy中map的基本操作1

    访问Map中的值有三种方式:1) 使用下标操作符,如`map['a']`;2) 使用点语法,如`map.a`,这在键是有效标识符时可用;3) 调用`get()`方法,可以接受一个默认值,如`map.get('a', 0)`,若键不存在则返回默认值。`get...

    HashMap 概述 精讲 .md

    HashMap是Java集合框架的一部分,它实现了Map接口,提供了基于哈希表(Hash Table)的键值对存储方式。HashMap允许将null作为键或值,但考虑到性能和逻辑清晰度,通常避免这样做。作为一种非线程安全的数据结构,...

    双关键字HashMap

    描述中的"这是我自己写的,用2种方式实现,可以直接使用,也可以用于学习"意味着这个压缩包中包含两种不同的实现方式。这为开发者提供了多种选择,可以根据实际需求和性能考虑来选择合适的实现。同时,这也是一种...

    java中Map映射机制

    1. `equals(Object o)`:比较指定对象与当前Map是否等价,即两个Map是否包含相同的键值对。 2. `hashCode()`:返回Map的哈希码,用于比较和存储时的快速定位。 3. 插入和删除方法: - `clear()`:删除Map中所有映射...

    Java基础知识-day04 【Map】.pdf

    Map集合中的元素是成对存在的,每个元素由键与值两部分组成,通过键可以找对所对应的值。Map集合不能包含重复的键,值可以重复;每个键只能对应一个值。 Map常用子类 Map接口有多个子类,常用的有HashMap和...

    Java Map 集合类简介

    在Java的`java.util`包中,集合类扮演着重要的角色,其中List和Map是最为常见的两种。List的实现例如ArrayList和Vector,它们都是可变大小的列表,适合存储和操作各种类型对象的序列。特别是ArrayList,基于动态数组...

    对java中Map集合的讲解

    Map是Java集合框架中的一个重要组成部分,它提供了一种存储键值对(key-value pair)数据结构的方式。与List和Set不同,Map并没有直接继承自`Collection`接口,而是独立于`Collection`体系之外。Map的主要特点是它通过...

    linux hash_map

    总的来说,`hash_map`在Linux环境下提供了一种高效的数据存储方式,特别适合于需要快速查找和插入的场景。不过,由于`hash_map`并不是C++标准库的一部分,使用时需要注意它可能存在的移植性和兼容性问题。在C++11及...

    易语言仿java集合 list map源码

    在Java中,List和Map是两种主要的数据结构。List是一种有序的集合,允许重复元素,可以按索引访问。常见的List实现有ArrayList和LinkedList。Map则是一种键值对的存储结构,不允许键重复,但值可以重复。HashMap和...

    Map实现类1

    Map接口定义了多种操作键值对的方法,而HashMap和TreeMap是两种常见的Map实现类。 1. HashMap - 数据结构:HashMap基于哈希表实现,内部使用数组加链表或者红黑树的结构。每个元素是一个内部类Node,实现了Map....

    Java集合之HashMap用法详解

    HashMap提供了两种遍历方法,包括使用entrySet()方法和keySet()方法。 * 使用entrySet()方法:该方法返回一个包含所有键值对的Set集合,然后可以使用迭代器遍历该集合,例如: ```java Iterator iter = map....

    Java中常用Map测试示例

    首先,`Map`接口定义了一些基本操作,如`put`用于添加键值对,`get`用于获取与给定键关联的值,`remove`用于移除键值对,以及`size`用于返回键值对的数量。`Map`接口还强制要求键是唯一的,这意味着每个键只能映射到...

    day04 【Map】.pdf

    Map的遍历主要有两种方式: 1. 通过`keySet()`获取键的Set视图,然后遍历Set,使用`get(key)`获取对应的值。 2. 通过`entrySet()`获取键值对的Set视图,直接遍历每个Entry对象,获取键和值。 【代码示例】 ```java...

    map转化为list

    一种常见的方式是创建一个新的List,然后遍历Map的entrySet(),将每个键值对作为新List的一个元素添加进去。如果需要分别获取键和值,可以创建两个List,一个存放键,一个存放值。 描述中提到的博客链接可能详细...

Global site tag (gtag.js) - Google Analytics