Java编程中的HashSet和BitSet详解
程序员文章站
2024-03-05 19:58:43
java编程中的hashset和bitset详解
我在apache的开发邮件列表中发现一件很有趣的事,apache commons包的arrayutils类的remove...
java编程中的hashset和bitset详解
我在apache的开发邮件列表中发现一件很有趣的事,apache commons包的arrayutils类的removeelements方法,原先使用的hashset现在换成了bitset。
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));
新代码如下:
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);
为什么会使用bitset代替hashset呢?
据apache commons作者指出,这样代码执行时可以占用更少的内存,速度也更快。
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
下一篇: php 三元运算符实例详细介绍