最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

java 中RandomAccess接口源碼分析

 更新時間:2017年05月28日 08:59:08   投稿:lqh  
這篇文章主要介紹了java 中RandomAccess接口源碼分析的相關資料,需要的朋友可以參考下

java 中RandomAccess接口源碼分析

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

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

/**
 * Marker interface used by <tt>List</tt> 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ù)時間)隨機訪問。
 * 這個接口的主要目的是允許一般的算法更改它們的行為,以便在隨機或者順序存取列表時能提供更好的性能。
 * <p>The best algorithms for manipulating random access lists (such as
 * <tt>ArrayList</tt>) can produce quadratic behavior when applied to
 * sequential access lists (such as <tt>LinkedList</tt>). Generic list
 * algorithms are encouraged to check whether the given list is an
 * <tt>instanceof</tt> 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)的最佳算法在應用于順序存取列表時,有可能產(chǎn)生二次項行為。
 * 泛型算法列表鼓勵在將某個算法應用于順序存取列表可能導致差的性能之前,先檢查給定的列表是否是這個接口的一個實例,
 * 并在需要時去改變這些算法的行為以保證性能。
 * <p>It is recognized that the distinction between random and sequential
 * access is often fuzzy. For example, some <tt>List</tt> implementations
 * provide asymptotically linear access times if they get huge, but constant
 * access times in practice. Such a <tt>List</tt> implementation
 * should generally implement this interface. As a rule of thumb, a
 * <tt>List</tt> implementation should implement this interface if,
 * for typical instances of the class, this loop:

 * 隨機訪問和順序存取之間的界限通常是模糊的。例如,一些List實現(xiàn)在變得很大時會導致漸進的非線性訪問時間,但實際上是常量訪問時間。
 * 這樣的List實現(xiàn)通常都應該實現(xiàn)該接口。
 * 一般來說,某個List實現(xiàn)如果(對某些典型的類的實例來說)滿足下面的條件,就應該實現(xiàn)這個接口:循環(huán)
 * <pre>
 *   for (int i=0, n=list.size(); i &lt; n; i++)
 *     list.get(i);
 * </pre>
 * runs faster than this loop:
 * 比下面的循環(huán)運行速度快。
 * <pre>
 *   for (Iterator i=list.iterator(); i.hasNext(); )
 *     i.next();
 * </pre>
 *
 * <p>This interface is a member of the
 * <a href="{@docRoot}/../technotes/guides/collections/index.html" rel="external nofollow" >
 * Java Collections Framework</a>.
 * 這個接口是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 &lt; 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實現(xiàn)PDF文本旋轉傾斜

    基于Java實現(xiàn)PDF文本旋轉傾斜

    這篇文章主要介紹了基于Java實現(xiàn)PDF文本旋轉傾斜,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-05-05
  • SpringBoot整合Shiro的代碼詳解

    SpringBoot整合Shiro的代碼詳解

    shiro是一個權限框架,它提供了很方便的權限認證和登錄的功能.下面通過本文給大家分享SpringBoot整合Shiro的代碼詳解,需要的的朋友參考下吧
    2017-08-08
  • MybatisPlus創(chuàng)建時間不想用默認值的問題

    MybatisPlus創(chuàng)建時間不想用默認值的問題

    MybatisPlus通過FieldFill注解和MpMetaObjectHandler類支持自動填充字段功能,特別地,可以設置字段在插入或更新時自動填充創(chuàng)建時間和更新時間,但在特定場景下,如導入數(shù)據(jù)時,可能需要自定義創(chuàng)建時間
    2024-09-09
  • SpringBoot本地磁盤映射問題

    SpringBoot本地磁盤映射問題

    這篇文章主要介紹了SpringBoot本地磁盤映射問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-10-10
  • 詳解Java中兩種分頁遍歷的使用姿勢

    詳解Java中兩種分頁遍歷的使用姿勢

    這篇文章主要介紹了詳解Java中兩種分頁遍歷的使用姿勢,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2021-03-03
  • Java微信公眾平臺開發(fā)(12) 微信用戶信息的獲取

    Java微信公眾平臺開發(fā)(12) 微信用戶信息的獲取

    這篇文章主要為大家詳細介紹了Java微信公眾平臺開發(fā)第十二步,微信用戶信息的獲取,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-04-04
  • java反射簡單實例

    java反射簡單實例

    這篇文章主要介紹了java反射機制,以一個簡單實例形式分析了Java反射的原理與實現(xiàn)技巧,需要的朋友可以參考下
    2015-02-02
  • 基于springcloud異步線程池、高并發(fā)請求feign的解決方案

    基于springcloud異步線程池、高并發(fā)請求feign的解決方案

    這篇文章主要介紹了基于springcloud異步線程池、高并發(fā)請求feign的解決方案,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-02-02
  • SpringBoot中的yaml語法及靜態(tài)資源訪問問題

    SpringBoot中的yaml語法及靜態(tài)資源訪問問題

    這篇文章主要介紹了SpringBoot中的yaml語法及靜態(tài)資源訪問問題,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-07-07
  • java+selenium 網(wǎng)易云音樂刷累計聽歌數(shù)的方法

    java+selenium 網(wǎng)易云音樂刷累計聽歌數(shù)的方法

    這篇文章主要介紹了java+selenium 網(wǎng)易云音樂刷累計聽歌數(shù)的方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-06-06

最新評論

赫章县| 邓州市| 雅江县| 祁阳县| 彭水| 家居| 贞丰县| 全南县| 庆阳市| 锦州市| 南华县| 建德市| 湖北省| 司法| 上栗县| 靖州| 新河县| 龙岩市| 茌平县| 铜梁县| 毕节市| 武城县| 茶陵县| 东阿县| 赤城县| 云龙县| 扎赉特旗| 宣汉县| 延边| 疏附县| 西贡区| 铜梁县| 游戏| 绩溪县| 晋中市| 枣强县| 宁陵县| 全南县| 保山市| 射阳县| 无极县|