HashMap中键对应的值可以重复吗

时间:2022-01-03 19:16:28
键不可以重复,这个我知道,就是不知道值可不可以重复

25 个解决方案

#1


可以重复啊,键-值对不允许重复,但是关键字不允许重复就保证了这一点,值是可以重复的

#2


值重复没问题的!

#3


引用 楼主 u010904858 的回复:
键不可以重复,这个我知道,就是不知道值可不可以重复


看JDK说明

 Set<K> keySet() 
          Returns a Set view of the keys contained in this map. 

Collection<V> values() 
          Returns a Collection view of the values contained in this map. 

返回类型,直接说明问题,返回键集合是set,返回值集合是Collection(很明显JDK意思是:不排除重复)

#4


就像函数关系:y=f(x)一样,(x,y)关系,x是不可以重复的键,y是有可能重复的。

#5


Map 要求 key 的值是一个不变的对象, 像 String, Integer 之类,

#6


值是可以重复的,但是键是不能重复的

#7


value随便  key也不能说不允许重复  只是重复了覆盖而已

#8


可以重复,键是唯一的就行

#9


键 是可以重复的 但是值不可以重复

map 就是这么规定的

#10


好像是可以的 吧

#11


值是可以重复的。如果值键重复而值不重复,后面相同的键的值会覆盖前面的一个。

#12


键是set 值是collection 当然可以重写啦
package yingxi.yingkeyuan2;

import java.util.HashMap;
import java.util.Iterator;
import java.util.Set;

public class HashMapTest
{
public static void main(String[] args) {
HashMap map = new HashMap();
for(int i=0;i<args.length;i++)
{
if(map.get(args[i])==null)
{
map.put(args[i],new Integer(1));
}
else
{
Integer in =(Integer)map.get(args[i]);
in = new Integer(in.intValue()+1);
map.put(args[i],in);
}
Set set = map.keySet();
for(Iterator it =set.iterator();it.hasNext();)
{
String key = (String)it.next();
Integer value =(Integer)map.get(key);
System.out.println(key+" : "+value);
}
}
}

}

#13


键不能重复,值可以

#14


试试就知道了,别人说了你就信了?

#15


引用 3 楼 u011325635 的回复:
Quote: 引用 楼主 u010904858 的回复:

键不可以重复,这个我知道,就是不知道值可不可以重复


看JDK说明

 Set<K> keySet() 
          Returns a Set view of the keys contained in this map. 

Collection<V> values() 
          Returns a Collection view of the values contained in this map. 

返回类型,直接说明问题,返回键集合是set,返回值集合是Collection(很明显JDK意思是:不排除重复)

好解释

#16


自己试试,实践出真理嘛

#17


这个问题 你也来问,你试一试啊,了解一下Map 的数据结构。

#18


key 不能重复 后put的key-value 会覆盖之前已经put的

#19


值是可以重复的。
Set<E> 是不能重复的 
List<E>是可以重复的.

#20


可以的..这种问题自己试一下也就知道了 

#21


可以重复,不过 如果key相等, 那么key值将被覆盖,取代先前的key,value随之改变,如果key不等,那么将开辟新的内存空间,来存储key-value的值,此时 先前的key和后者key ,他们的存储地址是不同的.

#22


HashMap中键对应的值可以重复吗

#23


key和value都是可以重复的,也可以为null

#24


没问题的~~~~~~

#25


 public static void main(String[] args) {
HashMap<Integer,String> map=new HashMap<Integer,String>();
map.put(1, "apple");
map.put(1, "pear");
map.put(2, "cars");
for(Integer a: map.keySet()){
    System.out.println(a+"   "+map.get(a));
    
}

1   pear
2   cars

#1


可以重复啊,键-值对不允许重复,但是关键字不允许重复就保证了这一点,值是可以重复的

#2


值重复没问题的!

#3


引用 楼主 u010904858 的回复:
键不可以重复,这个我知道,就是不知道值可不可以重复


看JDK说明

 Set<K> keySet() 
          Returns a Set view of the keys contained in this map. 

Collection<V> values() 
          Returns a Collection view of the values contained in this map. 

返回类型,直接说明问题,返回键集合是set,返回值集合是Collection(很明显JDK意思是:不排除重复)

#4


就像函数关系:y=f(x)一样,(x,y)关系,x是不可以重复的键,y是有可能重复的。

#5


Map 要求 key 的值是一个不变的对象, 像 String, Integer 之类,

#6


值是可以重复的,但是键是不能重复的

#7


value随便  key也不能说不允许重复  只是重复了覆盖而已

#8


可以重复,键是唯一的就行

#9


键 是可以重复的 但是值不可以重复

map 就是这么规定的

#10


好像是可以的 吧

#11


值是可以重复的。如果值键重复而值不重复,后面相同的键的值会覆盖前面的一个。

#12


键是set 值是collection 当然可以重写啦
package yingxi.yingkeyuan2;

import java.util.HashMap;
import java.util.Iterator;
import java.util.Set;

public class HashMapTest
{
public static void main(String[] args) {
HashMap map = new HashMap();
for(int i=0;i<args.length;i++)
{
if(map.get(args[i])==null)
{
map.put(args[i],new Integer(1));
}
else
{
Integer in =(Integer)map.get(args[i]);
in = new Integer(in.intValue()+1);
map.put(args[i],in);
}
Set set = map.keySet();
for(Iterator it =set.iterator();it.hasNext();)
{
String key = (String)it.next();
Integer value =(Integer)map.get(key);
System.out.println(key+" : "+value);
}
}
}

}

#13


键不能重复,值可以

#14


试试就知道了,别人说了你就信了?

#15


引用 3 楼 u011325635 的回复:
Quote: 引用 楼主 u010904858 的回复:

键不可以重复,这个我知道,就是不知道值可不可以重复


看JDK说明

 Set<K> keySet() 
          Returns a Set view of the keys contained in this map. 

Collection<V> values() 
          Returns a Collection view of the values contained in this map. 

返回类型,直接说明问题,返回键集合是set,返回值集合是Collection(很明显JDK意思是:不排除重复)

好解释

#16


自己试试,实践出真理嘛

#17


这个问题 你也来问,你试一试啊,了解一下Map 的数据结构。

#18


key 不能重复 后put的key-value 会覆盖之前已经put的

#19


值是可以重复的。
Set<E> 是不能重复的 
List<E>是可以重复的.

#20


可以的..这种问题自己试一下也就知道了 

#21


可以重复,不过 如果key相等, 那么key值将被覆盖,取代先前的key,value随之改变,如果key不等,那么将开辟新的内存空间,来存储key-value的值,此时 先前的key和后者key ,他们的存储地址是不同的.

#22


HashMap中键对应的值可以重复吗

#23


key和value都是可以重复的,也可以为null

#24


没问题的~~~~~~

#25


 public static void main(String[] args) {
HashMap<Integer,String> map=new HashMap<Integer,String>();
map.put(1, "apple");
map.put(1, "pear");
map.put(2, "cars");
for(Integer a: map.keySet()){
    System.out.println(a+"   "+map.get(a));
    
}

1   pear
2   cars