中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

關于java并發編程中數組類型的詳細介紹

發布時間:2020-07-06 14:44:31 來源:億速云 閱讀:167 作者:清晨 欄目:開發技術

這篇文章主要介紹關于java并發編程中數組類型的詳細介紹,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!

數組類型: AtomicIntegerArray, AtomicLongArray, AtomicReferenceArray。其中前兩個的使用方式差不多,AtomicReferenceArray因為他的參數為引用數組,所以跟前兩個的使用方式有所不同。

1.AtomicLongArray介紹

對于AtomicLongArray, AtomicIntegerArray我們還是只介紹一個,另一個使用方式大同小異。

我們先來看看AtomicLongArray的構造函數和方法:

構造函數:
    AtomicLongArray(int length) //創建給定長度的新 AtomicLongArray。
    AtomicLongArray(long[] array) //創建與給定數組具有相同長度的新 AtomicLongArray,并從給定數組復制其所有元素。
    方法:
     long addAndGet(int i, long delta) //以原子方式將給定值添加到索引 i 的元素。
     boolean compareAndSet(int i, long expect, long update) //如果當前值 == 預期值,則以原子方式將該值設置為給定的更新值。
     long decrementAndGet(int i)       //以原子方式將索引 i 的元素減1。
     long get(int i)                   //獲取位置 i 的當前值。
     long getAndAdd(int i, long delta) //以原子方式將給定值與索引 i 的元素相加。
     long getAndDecrement(int i)       //以原子方式將索引 i 的元素減 1。
     long getAndIncrement(int i)       //以原子方式將索引 i 的元素加 1。
     long getAndSet(int i, long newValue) //以原子方式將位置 i 的元素設置為給定值,并返回舊值。
     long incrementAndGet(int i)       // 以原子方式將索引 i 的元素加1。
     void lazySet(int i, long newValue)// 最終將位置 i 的元素設置為給定值。
     int length()                      //返回該數組的長度。
     void set(int i, long newValue)    //將位置 i 的元素設置為給定值。
     String toString()                 //返回數組當前值的字符串表示形式。

2.使用方式:

我們可以發現AtomicLongArray的使用方式和上一篇介紹的基本類型的原子類差不多,無非是換成了數組類型,另外方法里面的etAndAdd與ncrementAndGet我們要注意使用方式。

3.AtomicReferenceArray介紹

我們來看一下他的方法:

構造方法:

AtomicReferenceArray(E[] array) //創建與給定數組具有相同長度的新 AtomicReferenceArray,并從給定數組復制其所有元素。
AtomicReferenceArray(int length) // 創建給定長度的新 AtomicReferenceArray。
方法:
boolean compareAndSet(int i, E expect, E update) //如果當前值 == 預期值,則以原子方式將位置 i 的元素設置為給定的更新值。
     E get(int i)                    //獲取位置 i 的當前值。
     E getAndSet(int i, E newValue)  // 以原子方式將位置 i 的元素設置為給定值,并返回舊值。
     void lazySet(int i, E newValue) //最終將位置 i 的元素設置為給定值。
     int length()                    //返回該數組的長度。
     void set(int i, E newValue)     // 將位置 i 的元素設置為給定值。
     String toString()               //返回數組當前值的字符串表示形式。
     boolean weakCompareAndSet(int i, E expect, E update) // 如果當前值 == 預期值,則以原子方式將位置 i 的元素設置為給定的更新值。

由上我們可以看到AtomicReferenceArray與前兩個的方法相比少了很多。
下面我們通過一個小例子來看一下他的使用:

public class AtomicReferenceArrayTest {
    public static void main(String[] args) {
      Long[] l = new Long[4];
      String[] s = new String[4];
      int[] i = new int[4];
      Integer[] in = new Integer[4];
      AtomicReferenceArray atomicReferenceArray = new AtomicReferenceArray(l);
      System.out.println(atomicReferenceArray.length());
      System.out.println(atomicReferenceArray.get(2));

      AtomicReferenceArray atomic = new AtomicReferenceArray(4);
      atomic.set(0,432141);
      atomic.set(2,"fsafefeq");
      atomic.set(3,i);
      System.out.println(atomic.toString());
    }
  }

輸出結果為:

exclude patterns:
4
null
[432141, null, fsafefeq, [I@357b2b99]

Process finished with exit code 0

說明:

  1. 1.當我們使用AtomicReferenceArray(E[] array)這個構造方法傳入一個數組對象時,該數組對象必須是引用類型,int[]不可以,但是Integer[]的可以。
  2. 2.當我們使用AtomicReferenceArray(int length)這個構造函數的時候,只要為他指定了數組大小之后,你為數組的每一位設置什么值是沒有要求的,類似于Map的形式。

以上是關于java并發編程中數組類型的詳細介紹的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

龙口市| 惠安县| 葵青区| 皋兰县| 西林县| 清涧县| 仁寿县| 九寨沟县| 观塘区| 曲松县| 黄陵县| 凤阳县| 宁城县| 长垣县| 托里县| 隆化县| 湛江市| 凌云县| 江口县| 会泽县| 西和县| 临洮县| 江津市| 五指山市| 民勤县| 南皮县| 中宁县| 蒲城县| 东兴市| 崇州市| 鱼台县| 合山市| 西青区| 新竹县| 景谷| 东乡族自治县| 安远县| 龙海市| 海原县| 四子王旗| 拉孜县|