
本文旨在提供一种在Java数组中查找并显示重复元素的高效方法。通过将问题分解为独立的函数,分别负责查找重复项、格式化输出字符串和显示消息框,可以有效提高代码的可读性和可维护性,并解决在存在多个重复项时无法正确显示的问题。
在处理数据时,查找并显示重复元素是一个常见的需求。本文将介绍一种结构化的方法,通过将问题分解为更小的、易于管理的部分,来高效地实现这一目标。这种方法不仅可以提高代码的可读性,还能方便后续的维护和扩展。
1. 查找重复项
首先,我们需要一个函数来查找数组中的重复元素。这个函数接收一个整数数组作为输入,并返回一个包含所有重复元素的列表。为了提高效率,我们可以使用 HashSet 来存储已经遇到的元素。如果一个元素已经在 HashSet 中存在,那么它就是一个重复元素,将其添加到结果列表中。
立即学习“Java免费学习笔记(深入)”;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
public class DuplicateFinder {
public static List<Integer> findDuplicates(int[] arr) {
HashSet<Integer> seen = new HashSet<>();
List<Integer> duplicates = new ArrayList<>();
for (int num : arr) {
if (seen.contains(num)) {
if (!duplicates.contains(num)) { // 避免重复添加相同的重复项
duplicates.add(num);
}
} else {
seen.add(num);
}
}
return duplicates;
}
}2. 格式化输出字符串
接下来,我们需要一个函数来将重复元素的列表格式化成一个易于阅读的字符串。这个函数接收一个重复元素的列表作为输入,并返回一个包含所有重复元素的字符串,用逗号分隔。
import java.util.List;
public class DuplicateFormatter {
public static String formatDuplicates(List<Integer> duplicates) {
if (duplicates.isEmpty()) {
return "HONEST CUSTOMERS";
}
StringBuilder sb = new StringBuilder("Duplicates: ");
for (int i = 0; i < duplicates.size(); i++) {
sb.append("Customer #").append(duplicates.get(i));
if (i < duplicates.size() - 1) {
sb.append(", ");
}
}
return sb.toString();
}
}3. 显示消息框
最后,我们需要一个函数来显示包含重复元素的字符串的消息框。这个函数接收一个字符串作为输入,并使用 JOptionPane 来显示消息框。
import javax.swing.JOptionPane;
public class MessageDisplayer {
public static void showMessage(String message) {
JOptionPane.showMessageDialog(null, message);
}
}4. 整合代码
现在,我们可以将这些函数整合到一起,创建一个完整的程序。
import javax.swing.JOptionPane;
import java.util.List;
public class Main {
public static void main(String[] args) {
int number;
number = Integer.parseInt(JOptionPane.showInputDialog("Enter the number of customers: "));
int[] one = new int[number];
for (int i = 0; i < number; i++) {
one[i] = Integer.parseInt(JOptionPane.showInputDialog("Customer number: "));
}
List<Integer> duplicates = DuplicateFinder.findDuplicates(one);
String message = DuplicateFormatter.formatDuplicates(duplicates);
MessageDisplayer.showMessage(message);
}
}注意事项:
总结:
通过将问题分解为独立的函数,我们可以更容易地理解和维护代码。这种方法还可以提高代码的可重用性,因为这些函数可以在其他程序中被使用。此外,使用 HashSet 和 StringBuilder 等数据结构和类可以提高代码的性能。这种结构化的方法不仅解决了原问题,也为后续的代码维护和功能扩展提供了便利。
以上就是Java中查找并显示重复元素的高效方法的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号