欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Java編程中的HashSet和BitSet詳解

 更新時(shí)間:2017年03月06日 11:22:41   投稿:lqh  
這篇文章主要介紹了Java編程中的HashSet和BitSet詳解的相關(guān)資料,需要的朋友可以參考下

Java編程中的HashSet和BitSet詳解

我在Apache的開發(fā)郵件列表中發(fā)現(xiàn)一件很有趣的事,Apache Commons包的ArrayUtils類的removeElements方法,原先使用的HashSet現(xiàn)在換成了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呢?

據(jù)Apache Commons作者指出,這樣代碼執(zhí)行時(shí)可以占用更少的內(nèi)存,速度也更快。

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

相關(guān)文章

  • Java漢字轉(zhuǎn)拼音案例詳解

    Java漢字轉(zhuǎn)拼音案例詳解

    這篇文章主要介紹了Java漢字轉(zhuǎn)拼音案例詳解,本篇文章通過簡要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下
    2021-08-08
  • IDEA 2020.1 版自動(dòng)導(dǎo)入MAVEN依賴的方法(新版MAVEN無法自動(dòng)導(dǎo)入/更新POM依賴、MAVEN設(shè)置自動(dòng)更新、自動(dòng)更新快捷鍵)

    IDEA 2020.1 版自動(dòng)導(dǎo)入MAVEN依賴的方法(新版MAVEN無法自動(dòng)導(dǎo)入/更新POM依賴、MAVEN設(shè)置自動(dòng)更

    這篇文章主要介紹了IDEA 2020.1 版自動(dòng)導(dǎo)入MAVEN依賴的方法(新版MAVEN無法自動(dòng)導(dǎo)入/更新POM依賴、MAVEN設(shè)置自動(dòng)更新、自動(dòng)更新快捷鍵),需要的朋友可以參考下
    2020-08-08
  • MyBatis-Plus自定義SQL的詳細(xì)過程記錄

    MyBatis-Plus自定義SQL的詳細(xì)過程記錄

    Java開發(fā)使用mybatis-plus來執(zhí)行sql操作,往往比mybatis能夠省時(shí)省力,下面這篇文章主要給大家介紹了關(guān)于MyBatis-Plus自定義SQL的相關(guān)資料,需要的朋友可以參考下
    2022-02-02
  • Java如何實(shí)現(xiàn)海量數(shù)據(jù)判重

    Java如何實(shí)現(xiàn)海量數(shù)據(jù)判重

    在海量數(shù)據(jù)如何確定一個(gè)值是否存在?這是一道非常經(jīng)典的面試場景題,那怎么回答這個(gè)問題呢?下面小編就來和大家詳細(xì)的聊一聊,感興趣的可以一起學(xué)習(xí)一下
    2023-09-09
  • Java實(shí)現(xiàn)鏈表中元素的獲取、查詢和修改方法詳解

    Java實(shí)現(xiàn)鏈表中元素的獲取、查詢和修改方法詳解

    這篇文章主要介紹了Java實(shí)現(xiàn)鏈表中元素的獲取、查詢和修改方法,結(jié)合實(shí)例形式詳細(xì)分析了Java針對鏈表中元素的獲取、查詢和修改相關(guān)原理、實(shí)現(xiàn)方法及操作注意事項(xiàng),需要的朋友可以參考下
    2020-03-03
  • SpringBoot初始教程之Servlet、Filter、Listener配置詳解

    SpringBoot初始教程之Servlet、Filter、Listener配置詳解

    本篇文章主要介紹了SpringBoot初始教程之Servlet、Filter、Listener配置詳解,具有一定的參考價(jià)值,有興趣的可以了解一下
    2017-09-09
  • java線程池的四種創(chuàng)建方式詳細(xì)分析

    java線程池的四種創(chuàng)建方式詳細(xì)分析

    這篇文章主要介紹了java線程池的四種創(chuàng)建方式詳細(xì)分析,連接池是創(chuàng)建和管理一個(gè)連接的緩沖池的技術(shù),這些連接準(zhǔn)備好被任何需要它們的線程使用
    2022-07-07
  • Springboot 多module打包方案示例詳解

    Springboot 多module打包方案示例詳解

    在使用Springboot進(jìn)行多模塊項(xiàng)目開發(fā)時(shí),可能會遇到模塊間依賴不存在的問題,本文介紹了兩種主要的解決方案,這些方法有助于生成可執(zhí)行的jar包,并確保模塊間正確依賴,適用于多層項(xiàng)目結(jié)構(gòu)中的有效管理和打包,感興趣的朋友跟隨小編一起看看吧
    2023-07-07
  • 最新評論