我正在開發一個包含對象ArrayList的Android應用程序。 Arraylist中的每個對象都代表我的應用連接到的藍牙設備。將ArrayList項目連接到線程或其他方式的最佳方法
對於Arraylist中的每個設備,正在運行一個線程來進行藍牙通信。 (我打算把這些線程也放在一個數組中)。
我與掙扎的事情:什麼是ArrayList的項目連接線和周圍的其他方式的最佳方法是什麼?
因爲當有些變化到ArrayList項目時,線程溝通這一變化。當線程接收到通信時,它應該修改Arraylist項目「正在工作」。
解決方案,我一直在想:
- 我可以給兩個線程和ArrayList項的唯一ID和重申他們陣/ arrylist當一個需要對方。但這似乎很慢。
- 我可以將線程對象添加到Arraylist中的自定義設備對象中,以便所有內容都處於相同的Arraylist中。但是這不像我應該做的事情。 Arraylist會經常排序,我不知道如果排序,所有的數據都被重新定位(=>這是如何影響線程...)。或者是一個Ararylist只是一個列表引用的對象,它只是列表排序,但對象保持放...
這兩個選項似乎不是最好的解決方案。有沒有人知道做這件事的最好方法是什麼?
我還沒有真正用過線程和Arraylists。
」 ......因爲在Java中,你可以有對象只能引用的... 「如果Java程序不能有任何對象,我不確定Java程序會非常有趣。我認爲你的意思是說Java _variables_和Java _arrays_只能保存引用。 –
@Iriorio爲什麼我應該使用地圖的時候也可以使線程成爲Device對象的一部分?我不打算這樣做,因爲對設備進行排序會有很多數據交換,但是當它只是改變引用時,我沒有看到問題,或者是否存在? –
我個人不喜歡圈子引用,這就是爲什麼地圖。沒有什麼能阻止你這樣做,取決於你的需求和個人品味^^ @james是的,我的意思是變量只保存對象引用,而不像C++那樣你可以實際按值傳遞對象 – Ilario