Java程式設計中的HashSet和BitSet

2021-08-27 06:27:31 字數 611 閱讀 6435

我在apache的開發郵件列表中發現一件很有趣的事,apache commons包的arrayutils類的removeelements方法,原先使用的hashset現在換成了bitset。

hashsettoremove = new hashset();

for (map.entrye : occurrences.entryset())

toremove.add(found++);

}}return (char) removeall((object)array, extractindices(toremove));

新**如下:

bitset toremove = new bitset();

for (map.entrye : occurrences.entryset())

toremove.set(found++);

}}return (char) removeall(array, toremove);

為什麼會使用bitset代替hashset呢?

據apache commons作者指出,這樣**執行時可以占用更少的記憶體,速度也更快。

Java知識 HashSet詳解

它是由hashmap實現的,不保證元素的順序,而且hashset允許使用 null 元素。如果想要在多執行緒中使用hashset可以使用 collections.synchronizedset 方法來 包裝 set set s collections.synchronizedset new hash...

java集合框架 HashSet

目錄 1.無序 唯一 2.真的唯一麼?3.先入為主 4.set的其他實現類 hashset實現了set介面,內部主要是通過hashmap實現的.1.無序 唯一public class hashsetdemo1 collections.addall set,str system.out.println...

java之HashMap和HashSet的遍歷方法

今天去面試,面試官問到這個問題,發現自己用了這麼久的hashmap和hashset,竟然只勉強想到了一種方法,總結一下 hashmap遍歷方法 1 使用entryset for map.entryentry map.entryset 2 使用entry的迭代器 iterator iterator m...