「javamap的大小」java里面的map类型

博主:adminadmin 2023-01-21 18:36:10 394

本篇文章给大家谈谈javamap的大小,以及java里面的map类型对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

本文目录一览:

java map 的长度

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

java 怎么限制Map的大小啊?????

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

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) {

MapInteger, String map = new HashMapInteger, String();

map.put(1, "aaa");

map.put(2, "bbb");

final int findKey = 2;

final String findValue = "bbb";

boolean find = false;

for (EntryInteger, 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 hashmap占用内存空间大小

java没有sizeofo,,

我参考 写了一个

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中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 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,但是效率上,值得考究.

关于javamap的大小和java里面的map类型的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。