91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

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

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

關于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

行唐县| 筠连县| 哈密市| 昌乐县| 旺苍县| 溧阳市| 隆化县| 峨山| 开远市| 海兴县| 即墨市| 罗田县| 桑日县| 门头沟区| 怀安县| 夏邑县| 贵定县| 日土县| 绵阳市| 四川省| 玉山县| 虞城县| 饶阳县| 东城区| 合川市| 海宁市| 曲麻莱县| 富宁县| 克什克腾旗| 互助| 根河市| 阿瓦提县| 临朐县| 旅游| 达拉特旗| 邵阳县| 克拉玛依市| 通辽市| 利辛县| 阳朔县| 乡城县|