java数组查找相同元素的方法_求数组中出现次数最多的数

java数组查找相同元素的方法_求数组中出现次数最多的数在 Java 中找出数组中的重复素 可以通过以下几种方法 排序和遍历 对数组进行排序 然后遍历数组比较相邻素 javaimport java util Arrays public class MainClass public static void main String args int array 1 2 3 4 5 1 2 3

在Java中找出数组中的重复素,可以通过以下几种方法:

排序和遍历

对数组进行排序,然后遍历数组比较相邻素。

 import java.util.Arrays; public class MainClass { public static void main(String[] args) { int[] array = {1, 2, 3, 4, 5, 1, 2, 3}; Arrays.sort(array); for (int i = 1; i < array.length; i++) { if (array[i] == array[i - 1]) { System.out.println("找到重复素: " + array[i]); } } } } 

使用HashSet

创建一个HashSet,遍历数组,如果素已存在,则表示有重复素。

 import java.util.HashSet; public class MainClass { public static void main(String[] args) { int[] array = {1, 2, 3, 4, 5, 1, 2, 3}; HashSet 
  
    
  
    set = new HashSet<>(); 
   for (int num : array) { if (!set.add(num)) { System.out.println("存在重复素: " + num); } } } } 

使用Map

创建一个Map,遍历数组,将素作为键添加到Map中,如果键已存在,则表示有重复素。

 import java.util.HashMap; public class MainClass { public static void main(String[] args) { int[] array = {1, 2, 3, 4, 5, 1, 2, 3}; HashMap 
  
    
  
    map = new HashMap<>(); 
   for (int num : array) { if (map.containsKey(num)) { System.out.println("存在重复素: " + num); } else { map.put(num, true); } } } } 

使用双重循环

使用两层循环遍历数组,比较每对素是否相同。

 public class MainClass { public static void main(String[] args) { int[] array = {1, 2, 3, 4, 5, 1, 2, 3}; for (int j = 0; j < array.length; j++) { for (int k = j + 1; k < array.length; k++) { if (array[j] == array[k]) { System.out.println("重复素: " + array[j]); } } } } } 

摩尔投票法

使用摩尔投票法找出数组中任意一个重复的数字。

 public class MainClass { public static void main(String[] args) { int[] array = {2, 3, 1, 0, 2, 5, 3}; int candidate = 0; for (int num : array) { if (array[num] != num) { candidate = num; } else { array[num] = candidate; } } System.out.println("重复的数字是: " + candidate); } } 

以上方法各有优缺点,选择合适的方法取决于具体的需求和场景。排序和遍历方法简单直观,但时间复杂度较高;使用HashSet或Map的方法效率较高,但需要额外的空间;双重循环方法简单但效率低;摩尔投票法适用于特定场景,可以快速找出重复素。

编程小号
上一篇 2025-04-29 19:08
下一篇 2025-04-29 19:04

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://sigusoft.com/bj/91731.html