Java编程中的HashSet和BitSet详解

Java编程中的HashSet和BitSet详解

创新互联建站主要从事网站设计制作、成都网站建设、网页设计、企业做网站、公司建网站等业务。立足成都服务房山,10余年网站建设经验,价格优惠、服务专业,欢迎来电咨询建站服务:13518219792

我在Apache的开发邮件列表中发现一件很有趣的事,Apache Commons包的ArrayUtils类的removeElements方法,原先使用的HashSet现在换成了BitSet。

HashSet toRemove = new HashSet(); 
for (Map.Entry e : occurrences.entrySet()) { 
  Character v = e.getKey(); 
  int found = 0; 
  for (int i = 0, ct = e.getValue().intValue(); i < ct; i++) { 
    found = indexOf(array, v.charValue(), found); 
    if (found < 0) { 
      break; 
    } 
    toRemove.add(found++); 
  } 
} 
 
 
return (char[]) removeAll((Object)array, extractIndices(toRemove)); 

新代码如下:

BitSet toRemove = new BitSet(); 
for (Map.Entry e : occurrences.entrySet()) { 
  Character v = e.getKey(); 
  int found = 0; 
  for (int i = 0, ct = e.getValue().intValue(); i < ct; i++) { 
    found = indexOf(array, v.charValue(), found); 
    if (found < 0) { 
      break; 
    } 
    toRemove.set(found++); 
  } 
} 
return (char[]) removeAll(array, toRemove); 

为什么会使用BitSet代替HashSet呢?

据Apache Commons作者指出,这样代码执行时可以占用更少的内存,速度也更快。

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!


当前题目:Java编程中的HashSet和BitSet详解
网页路径:http://hxwzsj.com/article/gpjddp.html

其他资讯

Copyright © 2025 青羊区翔捷宏鑫字牌设计制作工作室(个体工商户) All Rights Reserved 蜀ICP备2025123194号-14
友情链接: 重庆网站制作 定制网站设计 公司网站建设 重庆网站制作 手机网站制作 重庆网站设计 定制网站建设多少钱 网站建设开发 网站建设 高端网站设计推广 移动网站建设 教育网站设计方案 温江网站设计 成都网站建设 成都品牌网站设计 网站设计制作 成都网站制作 成都定制网站建设 手机网站制作 高端网站设计 成都h5网站建设 成都网站制作