我在Apache的开发邮件列表中发现一件很有趣的事,Apache Commons包的ArrayUtils类的removeElements方法,原先使用的HashSet现在换成了BitSet。
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
HashSet<Integer> toRemove = new HashSet<Integer>();
for (Map.Entry<Character, MutableInt> 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));
|
新代码如下:
?
1
2
3
4
5
6
7
8
9
10
11
12
13
|
BitSet toRemove = new BitSet();
for (Map.Entry<Character, MutableInt> 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);
|
据Apache Commons作者指出,这样代码执行时可以占用更少的内存,速度也更快。
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
相关文章
猜你喜欢
- ASP.NET自助建站系统中的用户注册和登录功能定制方法 2025-06-10
- ASP.NET自助建站系统的域名绑定与解析教程 2025-06-10
- 个人服务器网站搭建:如何选择合适的服务器提供商? 2025-06-10
- ASP.NET自助建站系统中如何实现多语言支持? 2025-06-10
- 64M VPS建站:如何选择最适合的网站建设平台? 2025-06-10
TA的动态
- 2025-07-10 怎样使用阿里云的安全工具进行服务器漏洞扫描和修复?
- 2025-07-10 怎样使用命令行工具优化Linux云服务器的Ping性能?
- 2025-07-10 怎样使用Xshell连接华为云服务器,实现高效远程管理?
- 2025-07-10 怎样利用云服务器D盘搭建稳定、高效的网站托管环境?
- 2025-07-10 怎样使用阿里云的安全组功能来增强服务器防火墙的安全性?
快网idc优惠网
QQ交流群
您的支持,是我们最大的动力!
热门文章
-
如何在 Linux 中查找映射到 VxVM 磁盘的 SAN LUN
2025-05-27 102 -
企业网站云服务器租赁:VPS主机、独立服务器与网络安全保障方案
2025-06-04 44 -
2025-05-27 92
-
2025-05-27 59
-
2025-06-04 53
热门评论