回覆列表
-
1 # 大旗科技說
-
2 # 有骨有度
小陣列的話就用手上的程式語言提供的類庫,求陣列的交集,如果沒有類庫提供,就用雜湊的思想自己實現一個,或者用集合的思想轉一下,集合的交集就是相同的元素。
特大陣列,用散列表來實現。這方面有一個非常好的實現,叫做布隆過濾法,你網上搜搜他的思想,非常適合判斷海量資料中是否存在某個元素,缺點是會有小機率的誤判。
做法就是對其中較大的一個數組做雜湊雜湊,遍歷另一個數組,看是否存在,存在即為相同的元素。
陣列,就是相同資料型別的元素按必定次序擺放的集結,就是把有限個型別相同的變數用一個名字命名,然後用編號差異他們的變數的集結,這個名字稱為陣列名,編號稱為下標。組成陣列的各個變數稱為陣列的分量,也稱為陣列的元素,有時也稱為下標變數。陣列是在程式設計中,為了處理便當, 把具有相同型別的若干變數按有序的方法組織起來的一種方法。這些按序擺放的同類資料元素的集結稱為陣列。
棧記憶體
都在方法的棧記憶體中分配,當在一段程式碼中定義一個變數時,java就在棧記憶體中為這個變數分配記憶體
堆記憶體
堆記憶體用於儲存新運算子建立的目標和陣列,堆中分配的記憶體由Java虛擬機器的活動垃圾收集器處理。當在堆中建立陣列或目標時,一個特殊變數在堆疊記憶體中被繫結在一起。讓堆疊記憶體中此變數的值等於陣列的第一個地址或堆記憶體中的目標地址。堆疊中的變數成為陣列或目標的引號變數。引號變數實際上將陣列或目標的地址儲存在堆記憶體中(也稱為目標的控制代碼)。在以後的程式中,棧的報價變數可以用來訪問棧中的陣列或目標。