导航:首页 > 编程语言 > javamap大小

javamap大小

发布时间:2022-12-21 06:40:02

㈠ 如何获取 java hashmap占用内存空间大小

java没有sizeofo,,
我参考 http://topic.csdn.net/t/20060224/20/4575988.html写了一个

public static void main(String[] args){
// 创建1000个HashMap
HashMap strA[] = new HashMap[1000];
long start = 0;
long end = 0;
// 先垃圾回收
System.gc();
start = Runtime.getRuntime().freeMemory();
for(int i = 0; i < 1000; ++i)
strA[i] = new HashMap();
// 快要计算的时,再清理一次
System.gc();
end = Runtime.getRuntime().freeMemory();
System.out.println("一个HashMap对象占内存:" + (start - end)/1000.0);
}

㈡ java 怎么限制Map的大小啊

为什么有这样的需求?好像系统自带的Map并没有这总操作,你需要大概只能自己重写一个Map

㈢ 如何获取 java hashmap占用内存空间大小

反射一下 table[] 这个数组的长度 ,遍历里面所有的Entry链表。
hashmap基本上就是这个数组和里面的Entry里面的占用空间多,(不包括里面key 和 value 的大小)
另外还有几个域 , 占用内存是固定的,可以忽略。

㈣ java中开一个8千万大小的map来加载1G左右的文件,大概42000000行,导致内存急剧减小11个G,是什么情况

具体map的结构以及文件的格式?同样的文件有不同的数据机构组织方式,占用内存就是不一样的,而且map要维护hash key,也要额外占用空间

㈤ java中的怎么确定map集合的数据量是多少kb

import java.util.HashMap;
import java.util.Map;
import java.util.Map.Entry;

public class Test {
public static void main(String[] args) {
Map<Integer, String> map = new HashMap<Integer, String>();
map.put(1, "aaa");
map.put(2, "bbb");
final int findKey = 2;
final String findValue = "bbb";
boolean find = false;
for (Entry<Integer, String> entry : map.entrySet()) {
int key = entry.getKey();
String value = entry.getValue();
if (key == findKey && value.equals(findValue)) {
find = true;
break;
} else {
continue;
}
}
if (find) {
System.out.println("找到了");
} else {
System.out.println("没找到");
}
}
}

㈥ java map 的长度

Map是一个借口,只有实现他的类才有制定长度的功能,比如HashMap,初始化是16,List也是接口,它的实现类之一arraylist的构造函数有初始化长度的功能

㈦ java中如何使用map存取数据

java中使用map存取数据的方法如下:

1、需要指定其中的K,V;k=keyv=value。

㈧ Java JSP如何取得HashMap的大小

Java里面没有提供像C,C++那样的Sizeof()方法,所以不可以直接取得内存资源大小.

但是有提供Runtime.getRuntime ().totalMemory ()和Runtime.getRuntime ().freeMemory ()这样的方法

所以内存使用大小 = totalMemory () - freeMemory();

但是又不能直接传送Hashmap对象去计算.必须在创建Haspmap之前gc一次,然后得到大小,创建HaspMap之后再gc一次,得到内存大小,然后相减.

===================================
是的,这种方法统计的内存大小是Java使用的内存.但是Java垃圾回收机制,所以不能精确到KB.那就是我们在计算得时候必须GC得原因.

还有一个办法就是上面这么兄弟说得,用序列化.把HaspMap序列化(其实就是写入到一个临时文件).然后这个临时文件得大小,就是内存占用得大小.这个可以精确到KB,但是效率上,值得考究.

㈨ java中hashMap的默认大小为什么是2的幂

在hashmap的源码中。put方法会调用indexFor(int h, int length)方法,这个方法主要是根据key的hash值找到这个entry在table中的位置,源码如下:
/**
* Returns index for hash code h.
*/
static int indexFor(int h, int length) {
// assert Integer.bitCount(length) == 1 : "length must be a non-zero power of 2";
return h & (length-1);
}
注意最后return的是h&(length-1)。
如果length不为2的幂,比如15。那么length-1的2进制就会变成1110。在h为随机数的情况下,和1110做&操作。尾数永远为0。那么0001、1001、1101等尾数为1的位置就永远不可能被entry占用。这样会造成浪费,不随机等问题。

㈩ Java里的HashMap的获取大小中用keySet().size()和直接size()有什么区别

集合.size拿到的是键值对个数;
keyset.size拿到是键个数;
这二者都能表达集合中元素的个数;
区别,遍历的时候,所用的方法有所不同keyset.size更加灵活;

阅读全文

与javamap大小相关的资料

热点内容
dvd光盘存储汉子算法 浏览:757
苹果邮件无法连接服务器地址 浏览:963
phpffmpeg转码 浏览:671
长沙好玩的解压项目 浏览:145
专属学情分析报告是什么app 浏览:564
php工程部署 浏览:833
android全屏透明 浏览:737
阿里云服务器已开通怎么办 浏览:803
光遇为什么登录时服务器已满 浏览:302
PDF分析 浏览:485
h3c光纤全工半全工设置命令 浏览:143
公司法pdf下载 浏览:382
linuxmarkdown 浏览:350
华为手机怎么多选文件夹 浏览:683
如何取消命令方块指令 浏览:350
风翼app为什么进不去了 浏览:778
im4java压缩图片 浏览:362
数据查询网站源码 浏览:150
伊克塞尔文档怎么进行加密 浏览:892
app转账是什么 浏览:163