
本文旨在介绍如何使用Java查找数组中的重复元素,并将其清晰地显示在消息对话框中。我们将通过示例代码,详细讲解查找重复项的逻辑,以及如何有效地组织和展示结果,最终实现对多个重复客户信息的友好展示。
核心思路是将问题分解为几个独立的函数,每个函数负责一个特定的任务,使代码更易于理解和维护。
查找重复项函数:
该函数接收一个整数数组作为输入,并返回一个包含重复元素的列表。为了避免重复计算,可以使用 HashSet 来记录已经找到的重复元素。
立即学习“Java免费学习笔记(深入)”;
import javax.swing.JOptionPane;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
public class DuplicateFinder {
public static List<Integer> findDuplicates(int[] arr) {
Set<Integer> seen = new HashSet<>();
Set<Integer> duplicates = new HashSet<>();
List<Integer> result = new ArrayList<>();
for (int num : arr) {
if (!seen.add(num)) {
duplicates.add(num);
}
}
result.addAll(duplicates);
return result;
}此函数使用 HashSet 的 add() 方法的特性。add() 方法在添加新元素时返回 true,如果元素已经存在则返回 false。通过检查返回值,可以判断元素是否重复。
格式化输出函数:
该函数接收重复元素列表,并将其格式化为易于阅读的字符串。
public static String formatDuplicates(List<Integer> duplicates) {
if (duplicates.isEmpty()) {
return "HONEST CUSTOMERS";
} else {
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();
}
}使用 StringBuilder 可以更有效地构建字符串,尤其是在循环中。
显示消息对话框函数:
该函数接收格式化后的字符串,并使用 JOptionPane 显示消息对话框。
public static void showMessage(String message) {
JOptionPane.showMessageDialog(null, message);
}将上述函数整合到 main 方法中,形成一个完整的示例程序。
import javax.swing.JOptionPane;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
public class DuplicateFinder {
public static List<Integer> findDuplicates(int[] arr) {
Set<Integer> seen = new HashSet<>();
Set<Integer> duplicates = new HashSet<>();
List<Integer> result = new ArrayList<>();
for (int num : arr) {
if (!seen.add(num)) {
duplicates.add(num);
}
}
result.addAll(duplicates);
return result;
}
public static String formatDuplicates(List<Integer> duplicates) {
if (duplicates.isEmpty()) {
return "HONEST CUSTOMERS";
} else {
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();
}
}
public static void showMessage(String message) {
JOptionPane.showMessageDialog(null, message);
}
public static void main(String[] args) {
int number;
number = Integer.parseInt(JOptionPane.showInputDialog("Enter the number of customers: "));
int[] customers = new int[number];
for (int i = 0; i < number; i++) {
customers[i] = Integer.parseInt(JOptionPane.showInputDialog("Customer number: "));
}
List<Integer> duplicates = findDuplicates(customers);
String message = formatDuplicates(duplicates);
showMessage(message);
}
}通过将问题分解为更小的、更易于管理的部分,可以编写出更清晰、更易于维护的代码。使用 HashSet 可以有效地查找重复元素。StringBuilder 可以有效地构建字符串。JOptionPane 可以方便地显示消息对话框。
以上就是Java中查找并显示重复元素的方法的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号