真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

java中RandomAccess接口源碼分析

java 中RandomAccess接口源碼分析

創(chuàng)新互聯(lián)公司服務(wù)項目包括江北網(wǎng)站建設(shè)、江北網(wǎng)站制作、江北網(wǎng)頁制作以及江北網(wǎng)絡(luò)營銷策劃等。多年來,我們專注于互聯(lián)網(wǎng)行業(yè),利用自身積累的技術(shù)優(yōu)勢、行業(yè)經(jīng)驗、深度合作伙伴關(guān)系等,向廣大中小型企業(yè)、政府機構(gòu)等提供互聯(lián)網(wǎng)行業(yè)的解決方案,江北網(wǎng)站推廣取得了明顯的社會效益與經(jīng)濟效益。目前,我們服務(wù)的客戶以成都為中心已經(jīng)輻射到江北省份的部分城市,未來相信會繼續(xù)擴大服務(wù)區(qū)域并繼續(xù)獲得客戶的支持與信任!

RandomAccess是一個接口,位于java.util包中。

這個接口的作用注釋寫的很清楚了:

/**
 * Marker interface used by List implementations to indicate that
 * they support fast (generally constant time) random access. The primary
 * purpose of this interface is to allow generic algorithms to alter their
 * behavior to provide good performance when applied to either random or
 * sequential access lists.
 * List實現(xiàn)所使用的標記接口,用來表明實現(xiàn)了這些接口的list支持快速(通常是常數(shù)時間)隨機訪問。
 * 這個接口的主要目的是允許一般的算法更改它們的行為,以便在隨機或者順序存取列表時能提供更好的性能。
 * 

The best algorithms for manipulating random access lists (such as * ArrayList) can produce quadratic behavior when applied to * sequential access lists (such as LinkedList). Generic list * algorithms are encouraged to check whether the given list is an * instanceof this interface before applying an algorithm that would * provide poor performance if it were applied to a sequential access list, * and to alter their behavior if necessary to guarantee acceptable * performance. * 操作隨機訪問列表(如ArrayList)的最佳算法在應(yīng)用于順序存取列表時,有可能產(chǎn)生二次項行為。 * 泛型算法列表鼓勵在將某個算法應(yīng)用于順序存取列表可能導(dǎo)致差的性能之前,先檢查給定的列表是否是這個接口的一個實例, * 并在需要時去改變這些算法的行為以保證性能。 *

It is recognized that the distinction between random and sequential * access is often fuzzy. For example, some List implementations * provide asymptotically linear access times if they get huge, but constant * access times in practice. Such a List implementation * should generally implement this interface. As a rule of thumb, a * List implementation should implement this interface if, * for typical instances of the class, this loop: * 隨機訪問和順序存取之間的界限通常是模糊的。例如,一些List實現(xiàn)在變得很大時會導(dǎo)致漸進的非線性訪問時間,但實際上是常量訪問時間。 * 這樣的List實現(xiàn)通常都應(yīng)該實現(xiàn)該接口。 * 一般來說,某個List實現(xiàn)如果(對某些典型的類的實例來說)滿足下面的條件,就應(yīng)該實現(xiàn)這個接口:循環(huán) *

 *   for (int i=0, n=list.size(); i < n; i++)
 *     list.get(i);
 * 
* runs faster than this loop: * 比下面的循環(huán)運行速度快。 *
 *   for (Iterator i=list.iterator(); i.hasNext(); )
 *     i.next();
 * 
* *

This interface is a member of the * * Java Collections Framework. * 這個接口是Java集合框架的一員。 * @since 1.4 */ public interface RandomAccess { }

 RandomAccess是一個空接口,而空接口的作用一般是起到一個標識的作用。

通俗點講,就是判斷一個list是否實現(xiàn)了RandomAcess接口,如果實現(xiàn)了,采用下面所示的簡單的for循環(huán)進行訪問速度比較快:

for (int i=0, n=list.size(); i < n; i++)
   list.get(i);

如果未實現(xiàn)RandomAcess接口,則采用下面的iterator循環(huán)訪問速度比較快。

for (Iterator i=list.iterator(); i.hasNext(); )
   i.next();

判斷使用instanceof,即

 if (list instanceof RandomAccess) 

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


分享文章:java中RandomAccess接口源碼分析
網(wǎng)站鏈接:http://weahome.cn/article/gcpigi.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部