Map<String,String> rm=new HashMap<String,String>(2)这个2是什么意思?

问题描述

如题了,请问一下这个2干嘛的?有他没有他有啥不同?

解决方案

解决方案二:
HashMappublicHashMap(intinitialCapacity)构造一个带指定初始容量和默认加载因子(0.75)的空HashMap。参数:initialCapacity-初始容量。抛出:IllegalArgumentException-如果初始容量为负。
解决方案三:
publicstaticMap<String,ERPOrgCorp>toCorpMap(List<ERPOrgCorp>list,booleanneedSeal,Object...isDisplay){这个省略号是怎么回事?我很菜,是大菜鸟
解决方案四:
Object...isDisplay可变参数,参数数量不确定时,可以使用Object...isDisplay来表示。楼主搜一下,java可变参数
解决方案五:

解决方案六:
/***Constructsanempty<tt>HashMap</tt>withthespecifiedinitial*capacityandthedefaultloadfactor(0.75).**@paraminitialCapacitytheinitialcapacity.*@throwsIllegalArgumentExceptioniftheinitialcapacityisnegative.*/publicHashMap(intinitialCapacity){this(initialCapacity,DEFAULT_LOAD_FACTOR);}

initialCapacitytheinitialcapacity.里面Entry数组的初始空间开辟大小
解决方案七:
HashMap(intinitialCapacity)构造一个带指定初始容量和默认加载因子(0.75)的空HashMap。
解决方案八:
引用2楼u010175788的回复:

publicstaticMap<String,ERPOrgCorp>toCorpMap(List<ERPOrgCorp>list,booleanneedSeal,Object...isDisplay){这个省略号是怎么回事?我很菜,是大菜鸟

java的可变参数,从JDK1.5开始有的,你可以传0至多个参数
解决方案九:
看看api吧。
解决方案十:
加载因子越高空间利用率提高了但是查询时间和添加时间增加hashmap是这样存的先利用hashcode找到需要存的地方但是存的地方肯定是有限的就是hashMap分配到的空间比如是10现在你第一个元素来了那么他会根据你hashcode%10得到你在10个位置中该存到哪里这个时候就有一个问题,就是,如果hashcode%10找到存的地方当你要存进去时候你发现里面已经有另外一个对象了,那么这时候就要调用equals方法进行比较,如果相同,就说明是一个相同的对象。就替换掉。如果不同,那么就形成散列桶,就是2个对象一起,不过有先后,后进来的在后面。hashmap查询对象,要的是效率,直接通过hashcode找到存放的地址,直接取出,只需一次。但是像我们前面说的这种情况,是会让操作数增加的,你找到了hashcode所对应的物理地址,发现里面有2个对象,这时就不能确定那个是你要找的,那么就要通过equals和你传入的key进行比对,相同则返回。前面的讲述已经发现当你空间只有仅仅为10的时候是很容易造成,2个对象的hashcode所对应的地址是一个位置的情况这样就造成2个对象会形成散列桶,使查询和插入的时间增加。这时就有一个加载因子的参数,如果加载因子为0.75,如果你hashmap的空间有100那么当你插入了75个元素的时候hashmap就需要扩容了,不然的话会形成很长散列桶,对于查询和插入都会增加时间,因为他要一个一个的equals。但是你又不能让加载因子很小,0.01这样是不合适的,因为他会大大消耗你的内存,你一加入一个对象hashmap就扩容。这时就存在着一个平衡,,jdk中默认是0.75可以根据自己的实际情况进行调整希望能帮助你
解决方案十一:
引用9楼qq840727854的回复:

加载因子越高空间利用率提高了但是查询时间和添加时间增加hashmap是这样存的先利用hashcode找到需要存的地方但是存的地方肯定是有限的就是hashMap分配到的空间比如是10现在你第一个元素来了那么他会根据你hashcode%10得到你在10个位置中该存到哪里这个时候就有一个问题,就是,如果hashcode%10找到存的地方当你要存进去时候你发现里面已经有另外一个对象了,那么这时候就要调用equals方法进行比较,如果相同,就说明是一个相同的对象。就替换掉。如果不同,那么就形成散列桶,就是2个对象一起,不过有先后,后进来的在后面。hashmap查询对象,要的是效率,直接通过hashcode找到存放的地址,直接取出,只需一次。但是像我们前面说的这种情况,是会让操作数增加的,你找到了hashcode所对应的物理地址,发现里面有2个对象,这时就不能确定那个是你要找的,那么就要通过equals和你传入的key进行比对,相同则返回。前面的讲述已经发现当你空间只有仅仅为10的时候是很容易造成,2个对象的hashcode所对应的地址是一个位置的情况这样就造成2个对象会形成散列桶,使查询和插入的时间增加。这时就有一个加载因子的参数,如果加载因子为0.75,如果你hashmap的空间有100那么当你插入了75个元素的时候hashmap就需要扩容了,不然的话会形成很长散列桶,对于查询和插入都会增加时间,因为他要一个一个的equals。但是你又不能让加载因子很小,0.01这样是不合适的,因为他会大大消耗你的内存,你一加入一个对象hashmap就扩容。这时就存在着一个平衡,,jdk中默认是0.75可以根据自己的实际情况进行调整希望能帮助你

写的很认真,赞。不过有个细节需要纠正下,“那么这时候就要调用equals方法进行比较”之前由于||的短路性质会先比较hashcode是否相同(这就是为什么覆写equals方法时推荐重写hashcode方法,不然使用某些集合,如set时会出错)。
解决方案十二:
引用10楼sum_rain的回复:

Quote: 引用9楼qq840727854的回复:
加载因子越高空间利用率提高了但是查询时间和添加时间增加hashmap是这样存的先利用hashcode找到需要存的地方但是存的地方肯定是有限的就是hashMap分配到的空间比如是10现在你第一个元素来了那么他会根据你hashcode%10得到你在10个位置中该存到哪里这个时候就有一个问题,就是,如果hashcode%10找到存的地方当你要存进去时候你发现里面已经有另外一个对象了,那么这时候就要调用equals方法进行比较,如果相同,就说明是一个相同的对象。就替换掉。如果不同,那么就形成散列桶,就是2个对象一起,不过有先后,后进来的在后面。hashmap查询对象,要的是效率,直接通过hashcode找到存放的地址,直接取出,只需一次。但是像我们前面说的这种情况,是会让操作数增加的,你找到了hashcode所对应的物理地址,发现里面有2个对象,这时就不能确定那个是你要找的,那么就要通过equals和你传入的key进行比对,相同则返回。前面的讲述已经发现当你空间只有仅仅为10的时候是很容易造成,2个对象的hashcode所对应的地址是一个位置的情况这样就造成2个对象会形成散列桶,使查询和插入的时间增加。这时就有一个加载因子的参数,如果加载因子为0.75,如果你hashmap的空间有100那么当你插入了75个元素的时候hashmap就需要扩容了,不然的话会形成很长散列桶,对于查询和插入都会增加时间,因为他要一个一个的equals。但是你又不能让加载因子很小,0.01这样是不合适的,因为他会大大消耗你的内存,你一加入一个对象hashmap就扩容。这时就存在着一个平衡,,jdk中默认是0.75可以根据自己的实际情况进行调整希望能帮助你

写的很认真,赞。不过有个细节需要纠正下,“那么这时候就要调用equals方法进行比较”之前由于||的短路性质会先比较hashcode是否相同(这就是为什么覆写equals方法时推荐重写hashcode方法,不然使用某些集合,如set时会出错)。

对的因为前面有提到是先通过hashcode找到物理内存地址所以后面没有提看的非常认真
解决方案十三:
在线api:tools.oschina.net参考
解决方案十四:

解决方案十五:
建议楼主下个JavaAPI帮助文档自己看,这种东西文档生写得很清楚。

时间: 2024-10-29 04:53:43

Map&amp;lt;String,String&amp;gt; rm=new HashMap&amp;lt;String,String&amp;gt;(2)这个2是什么意思?的相关文章

HashMap&amp;amp;lt;int,String&amp;amp;gt; map=new HashMap&amp;amp;lt;int,String&amp;amp;gt;(); 这行怎么错了?

问题描述 eclipse报错为: Syntax error on token "int", Dimensions expected after this token这个链接也有说明 :http://blog.csdn.net/dingherry/article/details/5944285, 但是说的不清楚. 为什么基本数据类型不行? 非要把int 改为integer? 解决方案 引用规则和限制 1.泛型的类型参数只能是类类型(包括自定义类),不能是简单类型. 2.同一种泛型可以对应

java-String s =new String(&amp;amp;quot;xyz&amp;amp;quot;)创建了几个String Object

问题描述 String s =new String("xyz")创建了几个String Object 如题所示 String s =new String("xyz")创建了几个String Object 解决方案 String s=new String("xyz")究竟对象个数分为两种情况: 1.如果String常理池中,已经创建"xyz",则不会继续创建,此时只创建了一个对象new String("xyz"

Mybatis 如何 返回 List&amp;amp;lt;String&amp;amp;gt; 类型 或 List&amp;amp;lt;Map&amp;amp;lt;String,Object&amp;amp;gt;&amp;amp;gt;类型

问题描述 求助Mybatis如何返回List<String>类型或List<Map<String,Object>>类型 解决方案 解决方案二:XML里面resutType="String",接口返回List<String>不行吗?解决方案三:楼上说得对,如果返回List<String>,resultType="String"就可以了,如果需要返回List<Map<String,Object>

java操作redis: 将string、list、map、自定义的对象保存到redis中

import java.util.HashMap; import java.util.List; import java.util.Map; import redis.clients.jedis.Jedis; public class redis { public static void main(String[] args) { // 连接redis服务 Jedis jedis = new Jedis("127.0.0.1", 6379); // 密码验证-如果你没有设置redis密

Java的string类常量池及不可变性

1.String常量池     当使用new String("hello")时,JVM会先使用常量池来管理"hello"直接量,再调用String类的构造器来创建一个新的String对象,新创建的对象被保存在堆内存中.即new String("hello")一共产生了两个字符串对象. [常量池constant pool]管理在编译时被确定并保存在已编译的.class文件中的一些数据,包括关于类.方法.接口中的常量,和字符串常量.  [字符串常量池

nginx-Can&amp;amp;#39;t convert string from UTF8 to native encoding

问题描述 Can't convert string from UTF8 to native encoding svn: Can't convert string from 'UTF8' to native encoding 在centos使用nginx时遇到一个问题,我再nginx配置的web目录中写一个 index.php文件,内容: <?php exec("./test.sh", $out, $res); print_r($out); ?> test.sh内容: ?cd

C++面试中string类的一种正确写法

C++ 的一个常见面试题是让你实现一个 String 类,限于时间,不可能要求具备 std::string 的功能,但至少要求能正确管理资源.具体来说: 能像 int 类型那样定义变量,并且支持赋值.复制. 能用作函数的参数类型及返回类型. 能用作标准库容器的元素类型,即 vector/list/deque 的 value_type.(用作 std::map 的 key_type 是更进一步的要求,本文从略). 换言之,你的 String 能让以下代码编译运行通过,并且没有内存方面的错误. 1

JSON与String互转的实现方法(Javascript)_javascript技巧

JSON => String: jsonToString: function(obj){ var THIS = this; switch(typeof(obj)){ case 'string': return '"' + obj.replace(/(["\\])/g, '\\$1') + '"'; case 'array': return '[' + obj.map(THIS.jsonToString).join(',') + ']'; case 'object': i

string-判断两个String的交集,写个算法

问题描述 判断两个String的交集,写个算法 判断两个String的交集 比如 A = "Marginle",B = Valaienie", 交集为aie,写个算法. 请问这道题怎么做? 解决方案 @薇酱的思路不错,我来实现 #include <stdio.h> #include <string.h> void main() { char r0[256]; char r1[256]; char buff[1024]; char *b0; int i;