要找出Java数组中的重复数字,可能有以下几种方法:
方法一:暴力方法
这个方法虽然简单易懂,但其时间复杂度也比较高,不过对于小型数组来说还是可以接受的。
简单来说就是遍历整个数组,对于每一个数字,都依次遍历后面的数字,如果发现该数字已经出现过,那么就把它输出出来即可。
这个方法的Java代码示例如下:
public void findDuplicate(int[] arr) {
for (int i = 0; i < arr.length - 1; i++) {
for (int j = i + 1; j < arr.length; j++) {
if (arr[i] == arr[j]) {
System.out.println("重复数字为:" + arr[i]);
}
}
}
}
方法二:使用HashMap
这个方法的思路是利用一个HashMap来存储数组中出现过的数字及其出现的次数,然后再遍历HashMap,输出其中出现次数大于1的数字即可。
这个方法的Java代码示例如下:
public void findDuplicate(int[] arr) {
Map<Integer, Integer> map = new HashMap<>();
// 把数组中的数字及其出现的次数放到HashMap中
for (int i = 0; i < arr.length; i++) {
if (map.containsKey(arr[i])) {
map.put(arr[i], map.get(arr[i]) + 1);
} else {
map.put(arr[i], 1);
}
}
// 遍历HashMap,输出出现次数大于1的数字
for (Map.Entry<Integer, Integer> entry : map.entrySet()) {
if (entry.getValue() > 1) {
System.out.println("重复数字为:" + entry.getKey());
}
}
}
示例:
假设有数组arr = {1, 2, 3, 4, 5, 2, 3, 8, 9, 9},我们可以使用以上两种方法找出其中的重复数字。我们可以调用findDuplicate()方法和传入arr参数,即可找出其中的重复数字为2和3。
另外,在实际项目中,我们更推荐使用HashMap的方法,因为其时间复杂度较低,而且可以方便的统计次数并输出出现次数大于1的数字。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Java如何找出数组中重复的数字 - Python技术站