IntegerUtils :一個關於整數操作的工具類

來源:互聯網
上載者:User

最近自己寫程式的時候,想提高程式的效能。

 

一個基本的想法是:減少對象的建立。由於我的程式中要大量使用整數操作,包括 Integer.toString() 、Integer.toHexString() 等等。理論上,每次調用這些函數的時候都會解析整數,並產生字串,所以我自己寫了個類來緩衝結果,第二次調用的時候就不用再計算了。 

 

以下代碼發布在公用領域(Public Domain)下,你可以自由地使用它們。

/**<br /> * Integer utils, cached many results of toString/toHexString to get better performance<p><br /> * Java 1.4 compatible<br /> *<br /> * @author henix[http://blog.csdn.net/shell_picker]<br /> */<br />public class IntegerUtils {</p><p> static final int MAX_CACHED = 2048;</p><p> private static Integer[] cache = new Integer[MAX_CACHED];<br /> private static String[] cachedStrings = new String[MAX_CACHED];<br /> private static String[] cachedHexStrings = new String[MAX_CACHED];</p><p> /**<br /> * Implement the same logic as Integer.valueOf(int) in Java 1.5.<br /> *<br /> * @param i<br /> * @return<br /> */<br /> public static Integer getInteger(int i) {<br /> if (i >= 0 && i < MAX_CACHED) {<br /> synchronized (cache) {<br /> if (cache[i] == null) {<br /> cache[i] = new Integer(i);<br /> }<br /> }<br /> return cache[i];<br /> } else {<br /> return new Integer(i);<br /> }<br /> }</p><p> public static String toString(int i) {<br /> if (i >= 0 && i < MAX_CACHED) {<br /> synchronized (cachedStrings) {<br /> if (cachedStrings[i] == null) {<br /> cachedStrings[i] = Integer.toString(i);<br /> }<br /> }<br /> return cachedStrings[i];<br /> } else {<br /> return Integer.toString(i);<br /> }<br /> }</p><p> public static String toHexString(int i) {<br /> if (i >= 0 && i < MAX_CACHED) {<br /> synchronized (cachedHexStrings) {<br /> if (cachedHexStrings[i] == null) {<br /> cachedHexStrings[i] = Integer.toHexString(i);<br /> }<br /> }<br /> return cachedHexStrings[i];<br /> } else {<br /> return Integer.toHexString(i);<br /> }<br /> }</p><p> /**<br /> * parseInt that never throws exceptions<br /> *<br /> * @param str<br /> * @return<br /> */<br /> public static int parseInt(String str) {<br /> try {<br /> return Integer.parseInt(str);<br /> } catch (Exception e) {<br /> return 0;<br /> }<br /> }</p><p> public static int parseInt(String str, int radix) {<br /> try {<br /> return Integer.parseInt(str, radix);<br /> } catch (Exception e) {<br /> return 0;<br /> }<br /> }<br />}

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.