Java是一門極為流行的程式語言,它廣泛應用於各種場景,包括網路開發、行動應用程式開發、桌面應用程式等。 Java提供了豐富的集合類別庫來幫助開發人員處理各種資料結構,包括陣列、鍊錶、堆疊、佇列和映射等。
在Java中,集合是一種存放資料項目的容器。 Java集合類別庫可以分為兩個層次結構:集合介面和集合實作類別。集合介面是一組規範,定義了一系列的方法,用於操作集合中的元素。集合實作類別是基於介面的現實,提供了具體的實作細節,如ArrayList,LinkedList,HashSet等。
在本文中,我們將介紹一些常見的Java集合處理練習題,幫助讀者提升對Java集合運算的掌握。
給定一個整數數組,找出其中的重複元素。例如,對於數組{1, 2, 3, 4, 5, 6, 7, 8, 9, 1, 4, 5},應輸出1, 4和5。
解決這個問題的一種方法是使用HashSet。我們可以遍歷數組中的每個元素,並將它們加入HashSet中。如果一個元素已經存在於HashSet中,就表示它是重複的。以下是程式碼實作:
int[] arr = {1, 2, 3, 4, 5, 6, 7, 8, 9, 1, 4, 5}; Set<Integer> set = new HashSet<>(); Set<Integer> duplicates = new HashSet<>(); for (int i : arr) { if (!set.add(i)) { duplicates.add(i); } } System.out.println("重复元素为:" + duplicates);
給定兩個有序整數數組,將它們合併為一個排序數組。例如,對於陣列{1, 3, 5, 7}和{2, 4, 6, 8},應輸出{1, 2, 3, 4, 5, 6, 7, 8}。
解決這個問題的一種方法是,建立一個新的陣列來保存合併後的結果。接著,我們可以使用兩個指標分別指向兩個陣列中的元素,並比較它們的大小。將較小元素新增至新數組中,並將指標向前移動一位。以下是程式碼實作:
int[] arr1 = {1, 3, 5, 7}; int[] arr2 = {2, 4, 6, 8}; int len1 = arr1.length; int len2 = arr2.length; int[] result = new int[len1 + len2]; int i = 0, j = 0, k = 0; while (i < len1 && j < len2) { if (arr1[i] < arr2[j]) { result[k++] = arr1[i++]; } else { result[k++] = arr2[j++]; } } while (i < len1) { result[k++] = arr1[i++]; } while (j < len2) { result[k++] = arr2[j++]; } System.out.println(Arrays.toString(result));
給定一個字串,計算其中每個字元出現的次數。例如,對於字串"Java is a great language",應輸出字元'J'出現1次,字元'a'出現4次等。
解決這個問題的一種方法是,遍歷字串中的每個字符,並將它們添加到HashMap中。將每個字元作為鍵,出現次數作為值。以下是程式碼實作:
String str = "Java is a great language"; Map<Character, Integer> map = new HashMap<>(); for (int i = 0; i < str.length(); i++) { char c = str.charAt(i); if (c == ' ') { continue; } if (map.containsKey(c)) { map.put(c, map.get(c) + 1); } else { map.put(c, 1); } } for (Map.Entry<Character, Integer> entry : map.entrySet()) { System.out.println("字符'" + entry.getKey() + "'出现" + entry.getValue() + "次。"); }
Java集合是Java程式設計的重要組成部分。本文介紹了一些常見的Java集合處理練習題,有助於讀者加深對Java集合運算的理解與應用。
以上是Java中的集合處理練習題的詳細內容。更多資訊請關注PHP中文網其他相關文章!