Java語言中有兩個非常常用的數據結構是稀疏數組和哈希表。下面分別來介紹一下它們的使用方法和特點。
// 稀疏數組示例 int[][] sparseArray = new int[row][col]; int count = 0; for (int i = 0; i< row; i++) { for (int j = 0; j< col; j++) { if (sparseArray[i][j] != 0) { count++; } } } int[][] compactArray = new int[count + 1][3]; compactArray[0][0] = row; compactArray[0][1] = col; compactArray[0][2] = count; int index = 1; for (int i = 0; i< row; i++) { for (int j = 0; j< col; j++) { if (sparseArray[i][j] != 0) { compactArray[index][0] = i; compactArray[index][1] = j; compactArray[index][2] = sparseArray[i][j]; index++; } } } // 哈希表示例 MaphashMap = new HashMap<>(); hashMap.put("key1", "value1"); hashMap.put("key2", "value2"); hashMap.put("key3", "value3"); String value1 = hashMap.get("key1"); String value2 = hashMap.get("key2"); String value3 = hashMap.get("key3"); hashMap.remove("key3");
稀疏數組的作用是將大多數元素為0的二維數組轉換為簡潔的三元組,可以大大節省存儲空間。在上面的示例中,我們首先遍歷稀疏數組,確定其中非0元素的數量,然后新建一個緊湊形式的二維數組,將原數組中非0元素的行列位置和值存儲在其中。這樣,我們就可以通過緊湊數組的第一行記錄原始數組的行數、列數和非0元素數量來重新還原出原始的二維數組。
哈希表是一種以鍵值對存儲數據的數據結構,可以實現高效的搜索、插入和刪除。在上面的示例中,我們使用了Java語言中的Map接口實現了一個哈希表,可以方便地通過鍵獲取對應的值,并且可以隨時對鍵值對進行增、刪、改的操作。需要注意的是,在進行哈希操作時,經常需要重寫hashCode()和equals()方法。