我在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...