◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。
查找 java 数组中重复元素的方法主要有:直接比较:遍历数组并依次比较每个元素,时间复杂度 o(n^2)。哈希表:使用哈希表存储元素和计数,查找重复元素的时间复杂度 o(n)。集合:使用集合存储元素,查找重复元素的时间复杂度 o(n)。arrays.sort():对数组排序后查找相邻重复元素,时间复杂度 o(n log n)。
如何查找 Java 数组中的重复元素
直接比较
最简单的方法是通过直接比较元素来查找重复元素:
for (int i = 0; i < array.length; i++) { for (int j = i + 1; j < array.length; j++) { if (array[i] == array[j]) { // 找到重复元素 } } }
时间复杂度:O(n^2),其中 n 是数组的长度。
立即学习“Java免费学习笔记(深入)”;
哈希表
使用哈希表可以优化查找重复元素:
Map<Integer, Integer> map = new HashMap<>(); for (int num : array) { if (map.containsKey(num)) { // 找到重复元素 } else { map.put(num, 1); } }
时间复杂度:O(n),其中 n 是数组的长度。
集合
如果不需要记录重复元素的次数,可以使用集合来查找重复元素:
Set<Integer> set = new HashSet<>(); for (int num : array) { if (!set.add(num)) { // 找到重复元素 } }
时间复杂度:O(n),其中 n 是数组的长度。
Arrays.sort()
如果数组元素为可比较类型,可以使用 Arrays.sort() 方法对数组排序,然后遍历数组查找相邻元素是否重复:
Arrays.sort(array); for (int i = 1; i < array.length; i++) { if (array[i] == array[i - 1]) { // 找到重复元素 } }
时间复杂度:O(n log n),其中 n 是数组的长度。
◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。