java 怎样算一个集合有多少kb

如果这个集合是这样List<String>list=newArrayList<String>();list.add("abcdefghnopqr<?3>s38i458yt... 如果这个集合是这样
List<String> list = new ArrayList<String>();
list.add("abcdefghnopqr<?3>s38i458ytudifeisdkfjslf");
list.add("kfjiefjdkfjks怎么样...??d<optiorn>nfdkfnlskfj");
...
这个集合有这样的数据 10万条,那如何知道到这10万条数据有多少kb呢?
比如 :System.out.println(list.size()); //这样取得这个集合有多少条,那如何计算这么多条有多少KB 或 MB 或 GB 呢?
如果是这种比较复杂的集合该怎么统计呢?
List<Map<Object, Object>> list_map = new ArrayList<Map<Object, Object>>();
这个List 里面有 2万个Map ,一个Map里面有 30个键值对
那这个集合会有多大呢?用(KB或MB或GB)描述..
展开
 我来答
歪瑞顾K
2012-07-06 · TA获得超过2905个赞
知道大有可为答主
回答量:2731
采纳率:33%
帮助的人:2209万
展开全部
一个字节为一B = 8b
1KB = 8Kb
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
Dream106nice
2012-07-06
知道答主
回答量:10
采纳率:0%
帮助的人:1.6万
展开全部
一个字节为一B = 8b
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
libos88
2012-07-07 · TA获得超过151个赞
知道答主
回答量:580
采纳率:22%
帮助的人:60.4万
展开全部
等待
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
sjhxh219521
2012-07-06
知道答主
回答量:29
采纳率:0%
帮助的人:4.6万
展开全部
来看看
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友489295667
推荐于2016-09-14 · TA获得超过2367个赞
知道小有建树答主
回答量:1471
采纳率:80%
帮助的人:302万
展开全部
java内部使用utf-16编码,所以字符串中的一个字符(不管是字母,或者汉字)占4个字节。
内存中字符串占用的字节数=字符串的长度*4。
1G=1024M,1M=1024KB,1KB=1024Byte.
,针对你的问题,取出list中得每个字符串,分别计算字符串占用的字节数。
然后总和相加。就是list占用的字节数。
追问
我测试了一下 计算出的大小 为74KB 实际输出大小 txt格式为 39.8KB  excle 为31.5KB  似乎这样计算的误差有点大 。是不是因为 是utf-16 还要/2  的原因 或者是字符串的长度 *2 就够了!
utf-8 与 utf-16 有多大差别?
追答
utf-16是java内容使用的编码,也就是说,上面的方法计算的是list在内存中的大小。
字符串输出后,字符串占用空间依赖文件所采用的编码(与操作系统编码有关)。
中文windows,使用gbk编码。在gbk编码中,一个英文字符占一个字节。一个汉字占两个字节。
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 3条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式