一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - Java教程 - Java編程中的HashSet和BitSet詳解

Java編程中的HashSet和BitSet詳解

2020-08-24 11:03Java教程網 Java教程

這篇文章主要介紹了Java編程中的HashSet和BitSet詳解的相關資料,需要的朋友可以參考下

Java編程中的HashSet和BitSet詳解

我在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);

為什么會使用BitSet代替HashSet呢?

據Apache Commons作者指出,這樣代碼執行時可以占用更少的內存,速度也更快。

感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 男人j进女屁股视频在线观看 | 91综合精品网站久久 | 国产成人永久免费视 | 日本成人黄色片 | 东京道一本热大交乱 | 精品视频在线观看 | 99这里都是精品 | 亚洲天堂中文字幕 | 91香蕉小视频 | 精品国产成人a区在线观看 精品国产91久久久久久久 | 天堂在线免费观看 | 久久re热在线视频精6 | 久久受www免费人成_看片中文 | 国产色司机在线视频免费观看 | 体检小说 | 亚洲七七久久综合桃花 | 午夜想想爱 | 日本免费的一级绿象 | 国产精品原创视频 | sss亚洲国产欧美一区二区 | 暖暖的视频完整视频韩国免费 | 特级非洲黑人一级毛片 | h日本漫画全彩在线观看 | 日韩视频免费一区二区三区 | 亚洲AVAV天堂AV在线网爱情 | 青草网在线观看 | 阿 好深 快点 老师受不了 | 久久这里只有精品无码3D | 日韩成人在线视频 | 91在线一区二区三区 | 好涨好爽乱岳 | 久久99精品涩AV毛片观看 | 精品人伦一区二区三区潘金莲 | 亚欧国产| 三级aaa黄特色 | 91九色在线视频 | 亚洲精品人成网在线播放影院 | 麻豆婷婷| 无码国产成人777爽死 | 91国内在线国内在线播放 | 欧美在线视频一区二区 |