精华内容
下载资源
问答
  • Java中常见的三个集合接口:List、Set、Map,已经知道List中是允许重复元素的,而Set中是不允许重复元素的,那么Map允许重复元素吗?查阅资料,发现是不可以的,因为map是无序的,它的查询需要通过key的值来...

    Java中常见的三个集合接口:List、Set、Map,已经知道List中是允许有重复元素的,而Set中是不允许有重复元素的,那么Map中允许有重复元素吗?

    查阅资料,发现是不可以的,因为map是无序的,它的查询需要通过key的值来查找,如果你定义两个同样的key,那么一个key就对应了多个值,这样就违背了java对map的定义,键和值是一一对应的。所以key不可以重复。

    写个代码测试一下:

    package com.test.collection;

    import java.util.HashMap;

    import java.util.Map;

    //Map中key值不可重复的测试

    public class TestEquals {

    public static void main(String[] args) {

    String s1=new String("abc");

    String s2=new String("abc");

    Map map=new HashMap();

    map.put(s1, "abc123");

    map.put(s2, "ABC456");//第二个会覆盖第一个元素

    //注意:map中key值不可重复,直接根据比较的是equals,只有equals相同则覆盖

    System.out.println(map.size());

    System.out.println(map.get(s1));

    }

    }

    输出结果:

    1

    ABC456

    如果key重复,应该选取这个key对应的哪个值放入容器呢?做了一下测试:

    public class Test {

    public static Map putSome(Map map){

    map.put("gender", "Male");

    map.put("name", "Athor");

    map.put("name", "Cindy");

    map.put("name", "Billy");

    map.put("from","China");

    return map;

    }

    public static void main(String[] args) {

    System.out.println(putSome(new HashMap()));

    System.out.println(putSome(new TreeMap()));

    System.out.println(putSome(new LinkedHashMap()));

    }

    }

    输出结果:

    {name=Billy, gender=Male, from=China}

    {from=China, gender=Male, name=Billy}

    {gender=Male, name=Billy, from=China}

    可见不论是Map的哪个子类,键name对应的值都是Billy,即最后一个name的键值对,它覆盖了之前的name键值对。

    总结

    以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对聚米学院的支持。如果你想了解更多相关内容请查看下面相关链接

    展开全文
  • Java中常见的三个集合接口:List、Set、Map,已经知道List中是允许重复元素的,而Set中是不允许重复元素的,那么Map允许重复元素吗?查阅资料,发现是不可以的,因为map是无序的,它的查询需要通过key的值来...

    Java中常见的三个集合接口:List、Set、Map,已经知道List中是允许有重复元素的,而Set中是不允许有重复元素的,那么Map中允许有重复元素吗?

    查阅资料,发现是不可以的,因为map是无序的,它的查询需要通过key的值来查找,如果你定义两个同样的key,那么一个key就对应了多个值,这样就违背了java对map的定义,键和值是一一对应的。所以key不可以重复。

    写个代码测试一下:

    package com.test.collection; import java.util.HashMap; import java.util.Map; //Map中key值不可重复的测试 public class TestEquals { public static void main(String[] args) { String s1=new String("abc"); String s2=new String("abc"); Map map=new HashMap(); map.put(s1, "abc123"); map.put(s2, "ABC456");//第二个会覆盖第一个元素 //注意:map中key值不可重复,直接根据比较的是equals,只有equals相同则覆盖 System.out.println(map.size()); System.out.println(map.get(s1)); } }

    输出结果:1

    ABC456

    如果key重复,应该选取这个key对应的哪个值放入容器呢?做了一下测试:

    public class Test { public static Map putSome(Map map){ map.put("gender", "Male"); map.put("name", "Athor"); map.put("name", "Cindy"); map.put("name", "Billy"); map.put("from","China"); return map; } public static void main(String[] args) { System.out.println(putSome(new HashMap())); System.out.println(putSome(new TreeMap())); System.out.println(putSome(new LinkedHashMap())); } }

    输出结果:{name=Billy, gender=Male, from=China}

    {from=China, gender=Male, name=Billy}

    {gender=Male, name=Billy, from=China}

    可见不论是Map的哪个子类,键name对应的值都是Billy,即最后一个name的键值对,它覆盖了之前的name键值对。

    总结

    以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对华域联盟的支持。如果你想了解更多相关内容请查看下面相关链接

    展开全文
  • java mapkey排序吗java为数据结构中的映射定义了一个接口java.util.Map,他实现了四个类,分别是:HashMap,HashTable,LinkedHashMapTreeMap,Map允许重复,但允许重复1.HashMap:最常用的Map,根据键的...

    6e2ee91d0dcb26d77c9bb57fabd086dc.png

    java map的key排序吗

    java为数据结构中的映射定义了一个接口java.util.Map,他实现了四个类,分别是:HashMap,HashTable,LinkedHashMapTreeMap,Map不允许键重复,但允许值重复

    1.HashMap:

    最常用的Map,根据键的hashcode值来存储数据,根据键可以直接获得他的值(因为相同的键hashcode值相同,在地址为hashcode值的地方存储的就是值,所以根据键可以直接获得值),具有很快的访问速度,遍历时,取得数据的顺序完全是随机的,HashMap最多只允许一条记录的键为null,允许多条记录的值为null,HashMap不支持线程同步,即任意时刻可以有多个线程同时写HashMap,这样对导致数据不一致,如果需要同步,可以使用synchronziedMap的方法使得HashMap具有同步的能力或者使用concurrentHashMap

    2.HashTable:

    与HashMap类似,不同的是,它不允许记录的键或值为空,支持线程同步,即任意时刻只能有一个线程写HashTable,因此也导致HashTable在写入时比较慢!

    3.LinkedHashMap:

    是HahsMap的一个子类,但它保持了记录的插入顺序,遍历时先得到的肯定是先插入的,也可以在构造时带参数,按照应用次数排序,在遍历时会比HahsMap慢,不过有个例外,当HashMap的容量很大,实际数据少时,遍历起来会比LinkedHashMap慢(因为它是链啊),因为HashMap的遍历速度和它容量有关,LinkedHashMap遍历速度只与数据多少有关

    4.TreeMap:

    实现了sortMap接口,能够把保存的记录按照键排序(默认升序),也可以指定排序比较器,遍历时得到的数据是排过序的

    什么情况用什么类型的Map:

    在Map中插入,删除,定位元素:HashMap

    要按照自定义顺序或自然顺序遍历:TreeMap

    要求输入顺序和输出顺序相同:LinkedHashMap

    php中文网,大量的免费Java入门教程,欢迎在线学习!

    展开全文
  • Java HashMap key 可以重复吗Java的HashMap中key是不可以重复的,如果重复添加的话,HashMap会自动覆盖key一样的数据,保证一个key对应一个value,使用时只要把一个HashMap里的数据按照key依次加到另一个HashMap里...

    Java HashMap key 可以重复吗?

    Java的HashMap中key是不可以重复的,如果重复添加的话,HashMap会自动覆盖key一样的数据,保证一个key对应一个value,使用时只要把一个HashMap里的数据按照key依次加到另一个HashMap里即可。

    代码实例Map param = new HashMap();

    param.put("a","123");

    system.out.println(param.get("a")); //123

    param.put("a","456");

    system.out.println(param.get("a")); //456

    HashMap常用方法

    (1) 插入键值对数据

    public V put(K key, V value)

    (2)根据键值获取键值对值数据

    public V get(Object key)

    (3)获取Map中键值对的个数

    public int size()

    (4)判断Map集合中是否包含键为key的键值对

    public boolean containsKey(Object key)

    (5)判断Map集合中是否包含值为value的键值对

    boolean containsValue(Object value)

    (6)判断Map集合中是否没有任何键值对

    public boolean isEmpty()

    (7)清空Map集合中所有的键值对

    public void clear()

    (8)根据键值删除Map中键值对

    public V remove(Object key)

    推荐教程:《Java教程》

    展开全文
  • Java中的Map允许重复元素吗?

    万次阅读 2018-06-22 14:37:05
    Java中常见的三个集合接口:List、Set、Map,已经知道List中是允许重复元素的,而Set中是不允许重复元素的,那么Map允许重复元素吗?查阅资料,发现是不可以的,因为map是无序的,它的查询需要通过key的值来...
  • 关于map集合,key值相同时,value值会被覆盖,查阅API相关的说明.如果原来的key已经存在,则直接将新值覆盖到原值上面.那么问题来了,有时候后台需要我们发送json字符串数组,这时候就需要map集合的key值时相同的,网上找...
  • Java入职面试宝典--HashMap的秘密导语 HashMap是Java开发中经常用到的一种数据结构,也是面试过程中时常被问到的一个重点,想要被当成一个基础扎实的Java程序员,你应该了解以下HashMap的知识。1概述HashMap 是一个...
  • 用jdk本身的map是实现不了这种情况: 有重复key 但是不需要新的映射值value覆盖先前的value。public interface Map将键映射到值的对象。一个映射不能包含重复的键;每个键最多只能映射一个值。自然继承一下HashMap,...
  • 一、先来熟悉一下我们常用的HashMap1、概述HashMap基于Map接口实现,元素以键值对的方式存储,并且允许使用null 建和null 值, 因为key允许重复,因此只能有一个键为null,另外HashMap不能保证放入元素的顺序,它...
  • 不废话,直接上IdentityHashMap中的put方法源码:/*** Associates the specified value with the specified key in this identity* hash map. If the map previously contained a mapping for the key, the* ...
  • 在介绍 HashMap 首先介绍下 Map 接口此接口位于 java.util 包下,该接口共有四个常用实现类,分别是 HashMap、LinkedHashMap、TreeMap、Hashtable。继承关系如图:HashMap 它根据键的 hashCode 值存储数据,大多数...
  • HashMap 是基于哈希表的 Map 接口的非同步实现。此实现提供所有可选的映射操作,并允许使用 null 值和 null 键。此类不保证映射的顺序,特别是它不保证该顺序恒久不变。HashMap 的数据结构 在 Java 编程语言中,最...
  • 应该有很多人不知道IdentityHashMap的存在,其中不乏工作很多年的Java开发者,会有很多人以为这是第...其实我们对Map都有一个通用认知:只要key相同,就不能重复往里面put,但是你真的了解“相同”这两个字吗?看下...
  • HashMap是基于哈希表的Map接口的非同步实现。此实现提供所有可选的映射操作,并允许使用null值和null键。此类不保证映射的顺序,特别是它不保证该顺序恒久不变。HashMap的数据结构在Java编程语言中,最基本的结构...
  • 每篇一句 当你觉得路途艰难的时候,那是因为你在走上坡路 ...其实我们对Map都有一个通用认知:只要key相同,就不能重复往里面put,但是你真的了解**“相同”**这两个字吗?看下面这个例子吧: public stat
  • 也许你对这样一行代码不陌生: Map<...Map是一种从键映射到值的结构,存储键值对,其中key都是唯一的不允许重复,而值可以重复。实现Map的子类有很多:HashMap、TreeMap、LinkedMap等。虽然实现了...
  • HashMap 不是线程安全的HashMap 是 map 接口的实现类,是将键映射到值的对象,其中键和值都是对象,并且不能包含重复键,但可以包含重复值。HashMap 允许 null key 和 null value,而 HashTable 不允许。HashTable ...
  • HashMap基于Map接口实现,元素以键值对的方式存储,并且允许使用null 建和null 值, 因为key允许重复,因此只能有一个键为null,另外HashMap不能保证放入元素的顺序,它是无序的,和放入的顺序并不能相同...
  • java 面试题 总结

    2009-09-16 08:45:34
    HashMap是Hashtable的轻量级实现(非线程安全的实现),他们都完成了Map接口,主要区别在于HashMap允许空(null)键值(key),由于非线程安全,效率上可能高于Hashtable。 HashMap允许将null作为一个entry的key或者...
  • value是可重复的,value的底层是Collection集合,是允许重复数据保存的 用来标识map里的每项数据 HashMap、HashTable、ConcurrentHashMap HashMap HashTable ConcurrentHashMap 底层 JAVA8前:数组+...
  • JAVA面试题最全集

    2010-03-13 13:09:10
    Java 技术允许使用 finalize() 方法在垃圾收集器将对象从内存中清除出去之前做必要的清理工作。这个方法是由垃圾收集器在确定这个对象没有被引用时对这个对象调用的。它是在 Object 类中定义的,因此所有的类都...
  • HashMap是Hashtable的轻量级实现(非线程安全的实现),他们都完成了Map接口,主要区别在于HashMap允许空(null)键值(key),由于非线程安全,效率上可能高于Hashtable。 HashMap允许将null作为一个entry的key或者...
  • 遇到多设备/模拟器的情况均使用这几个参数为命令指定目标设备,下文中为简化描述,不再重复。 启动/停止 启动 adb server 命令: adb start-server (一般无需手动执行此命令,在运行 adb 命令时若发现 adb server ...

空空如也

空空如也

1 2
收藏数 23
精华内容 9
关键字:

javamap允许key重复吗

java 订阅