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

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

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的開發(fā)郵件列表中發(fā)現一件很有趣的事,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作者指出,這樣代碼執(zhí)行時可以占用更少的內存,速度也更快。

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

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 国产精品欧美亚洲韩国日本 | 扒开老女人 | 亚洲国产99999在线精品一区 | 国产一区二区三区高清 | 99热成人精品免费久久 | jiizz亚洲护士厕所 | 色777777女人色 | 87影院在线观看视频在线观看 | 大杳蕉在线影院在线播放 | 国产思妍小仙女一二区 | 91香蕉官网 | 青青草国产精品免费 | 国产一区精品视频 | 天天gan| 91制片厂果冻传媒首页 | 俄罗斯一级毛片免费播放 | 黑人巨茎大战欧美白妇 | 亚洲欧美成人中文在线网站 | 午夜办公室在线观看高清电影 | 交换年轻夫妇HD中文字幕 | 高清免费毛片 | 奇米影视在线观看 | 国产精品久久久久a影院 | 九九大香尹人视频免费 | 国产二区视频在线观看 | 亚洲国产在线观看免费视频 | 国产午夜免费秋霞影院 | 精品国产免费 | 精品久久久久免费极品大片 | 波多野结衣之高校教师 | 成人性生交大片免费看软件 | 国产精品日韩欧美一区二区三区 | 亚洲精品在线网址 | 男同gay作爰视频网站 | 亚洲视频一区二区在线观看 | 欧美成人手机 | 无人影院免费观看 | 热99精品 | anal22日本人视频 | 国产精自产拍久久久久久 | 青青草99热这里都是精品 |