您好,登錄后才能下訂單哦!
這篇文章主要介紹關于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
說明:
以上是關于java并發編程中數組類型的詳細介紹的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。