java-Map中一个key不是只对应一个value吗?

问题描述

Map中一个key不是只对应一个value吗?

java小白对粗体显示代码不解

private String[] names = new String[]{"虎头","弄玉","李清照","李白"};

@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
List> listItems = new ArrayList>();
for (int i = 0; i < names.length; i++)
{
Map listItem = new HashMap();
listItem.put("personName", names[i]);
listItems.add(listItem);
}
......

解决方案

for (int i = 0; i < names.length; i++)
{
Map listItem = new HashMap();
listItem.put("personName", names[i]);
listItems.add(listItem);
}

中,每次for循环创建一个新的Map,与原来的Map无关了,等for循环结束一次释放一次局部变量。

解决方案二:

其实在HashMap并不是我们看到的一个key只对应一个value,如果你的key仅仅只在euqals上相等,而在 == 上为false时,在存储时会将hash值一样的value放在数组的某个位置上,然后在该位置再接一个链表就相当于数组的这个值指向的是这个链表的地址值,然后链表中间可能有多个值。

时间: 2024-10-16 03:44:21

java-Map中一个key不是只对应一个value吗?的相关文章

java map中遍历和list

问题描述 java map中遍历和list map.put(""k_""+entryt.getKey() list);怎么只输出10条数据 解决方案 Iterator it=map.keySet().iterator();int i=1: while(it.hasNext()){if(i>10){break;}System.out.println(""键:""+it.next()) i++; } 解决方案二: Map&l

java map中写入的数据量大,入库也慢导致浏览器假死

问题描述 java map中写入的数据量大,入库也慢导致浏览器假死 由于前台要选中8000行左右的记录,提交后写入到map中,然后再从map中取出后插入到相应的表中,这时非常费时.目前插入操作也是指提交,但是提交后,目前浏览器经常会碰到假死的现象,大家有好的办法解决吗? 解决方案 你的设计有问题,批量选择,在界面上应该提供单独的设计,不是展示全部8000的记录,而是允许用户根据字段的范围来选择,界面上用可以懒惰加载和预览的方式呈现数据. 解决方案二: 数据要进行分页操作,分批插入,分批显示 解决

帮忙修改一个jquery左侧导航只展开一个菜单的效果,页面结构模式不可改,都是平级的。

问题描述 帮忙修改一个jquery左侧导航只展开一个菜单的效果,页面结构模式不可改,都是平级的. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <br> $(function(){<br> $("#mymenu dd"

新手求助 ActionListener中多次调用repaint()只运行一个?

问题描述 在做一个类似俄罗斯方块的游戏,同颜色的方块消去,本来想用标记消去部分,显示另外颜色来突出消去的部分后再消去方块,但发现调用repaint()无效下面是代码这个actionListener属于一个timerpublicvoidactionPerformed(ActionEvente){if(!currentBar.canDown(matrix)){while(true){intnewScore=matrix.checkMatrix();//方块颜色数据存储与matrix,checkMat

php删除数组中相同的元素,只保留一个相同元素

 代码如下 复制代码 <?php // 删除数组中相同元素,只保留一个相同元素 function formatArray($array) { sort($array); $tem = "; $temarray = array(); $j = 0; for($i=0;$i<count($array);$i++) { if($array[$i]!=$tem) { $temarray[$j] = $array[$i]; $j++; } $tem = $array[$i]; } return

ORACLE中怎么实现重复字段只选一个

问题描述 表结构如下:第一列 第二列 第三列 第四列 第五列 第六列 第七列 A A1 A12 B B1 B12 1A A1 A12 B B1 B12 1A A1 A12 B B1 B12 1A A1 A12 B2 B3 B12 1A A1 A12 B2 B3 B12 1A A1 A12 B2 B3 B12 1select 第四列 from 表 where 第七列=1取出来的第四列的值有很多是重复的,怎么实现重复的值只取一个? 解决方案 select 第七列 from 表 t group by

基于C++ map中key使用指针问题的详解_C 语言

C++实际开发的过程会经常使用到map.map是一个key-value值对,key唯一,可以用find进行快速的查找.其时间复杂度为O(logN),如果采用for循环进行遍历数据时间复杂度为O(N).如果map中的数据量比较少时,采用find和for循环遍历的效率基本没有太大的区别,但是在实际的开发过程中,存储在map中的数据往往是大量的,这个时候map采用find方式效率比遍历效率高的多. 确定采用find方式查找数据后,我们需要考虑存储map的空间复杂度,对于基础数据类型的数据(int ch

Java Map 集合类简介

集合 java.util 中的集合类包含 Java 中某些最常用的类. 最常用的集合类是 List 和 Map. List 的具体实现包括 ArrayList 和 Vector,它们是可变大小的列表,比较适合构建.存储和操作任何类型对象的元素列表. List 适用于按数值索引访问元素的情形. Map 提供了一个更通用的元素存储方法. Map 集合类用于存储元素对(称作"键"和"值"),其中每个键映射到一个值. 从概念上而言,您可以将 List 看作是具有数值键的 M

字符串向Map中赋值的问题

问题描述 现有一个map,一个字符串,结构如下,map中的key在字符串中可以一一对应问题是,将字符串的值对应map中的key进行赋值操作,最快的方法是什么?(字符串很长,里面的标签项过万)Map{a:123b:456c:789......zzz:194}String{a:55,b:66,c:77......zzz:999} 解决方案 解决方案二:newMap时候传一个合适的大小,比如预估数据量是1024,然后Mapmap=newHashMap(1024);这样可以防止,map在put过程中因为