Java中将Set集合用于校验是否重复

Java中将Set集合用于校验是否重复

题目:
输入一个int型整数,按照从右向左的阅读顺序,返回一个不含重复数字的新的整数。

这道题我一开始直接用Set集合进行数据的导入,但发现Set集合存储数据是无序不可重复的,也就是存入顺序和取出顺序不一致。

然后在看了评论老哥们的操作之后,学到了将Set集合仅仅用于校验数据是否重复。具体看代码吧

/**
 * !!!字符串拼接!!!
 * 输入一个int型整数,按照从右向左的阅读顺序,
 * 返回一个不含重复数字的新的整数。
 */
public class Test23 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        //这里Set用来校验是否重复
        Set<Character> set = new HashSet<>();
        int input = sc.nextInt();
        StringBuilder sb = new StringBuilder(String.valueOf(input));
        sb.reverse();
        for (int i = 0 ; i < sb.length(); i++) {
            if (set.add(sb.charAt(i))){
                System.out.print(sb.charAt(i));
            }
        }
    }
}
### 如何校验 Excel 或表格中的单元格是否重复值 在 Java 和 Python 中,可以通过不同的方法来检测 Excel 表格中某一列或某些区域内的单元格是否存在重复值。 #### 使用 Java 进行校验 通过 Apache POI 库可以读取 Excel 文件的内容,并逐行列出每一项进行比较。以下是具体实现方式: 1. **加载 Excel 文件** 需要先使用 `Workbook` 类加载文件,再获取工作表对象以及目标列的数据。 2. **遍历数据并存储到集合中** 将每行的目标列数据存入一个列表或者哈希集(HashSet),以便快速查找是否已存在相同值。 3. **判断重复值** 如果某个值已经存在于集合中,则说明该值是重复的;否则将其加入集合继续检查后续行。 ```java import org.apache.poi.ss.usermodel.*; import java.io.FileInputStream; import java.util.HashSet; public class CheckDuplicateInExcel { public static void main(String[] args) throws Exception { FileInputStream file = new FileInputStream("example.xlsx"); Workbook workbook = WorkbookFactory.create(file); Sheet sheet = workbook.getSheetAt(0); // 获取第一个sheet HashSet<String> uniqueValues = new HashSet<>(); int rowNum = 0; // 记录当前行为第几行 (从0开始) for (Row row : sheet) { Cell cell = row.getCell(0); // 假设我们只关注A列即索引为0的那一列 String value = ""; if(cell != null){ switch (cell.getCellType()) { case STRING: value = cell.getStringCellValue(); break; default: value = "" + cell.getNumericCellValue(); // 处理数值型或其他类型的单元格转换成字符串形式 } if (!uniqueValues.add(value)) { // add() 方法返回false表示此元素已经在set里了 System.out.println("发现重复值:" + value + ", 出现在第 " + (rowNum+1) + " 行"); [^1] } else{ System.out.println("新值被添加:" + value ); } } rowNum++; } workbook.close(); file.close(); } } ``` 上述代码片段展示了如何利用 Java 的 Apache POI 来解析 Excel 并验证其中一列是否存在重复值。 --- #### 使用 Python 进行校验 Python 可以借助 Pandas 库轻松完成这一任务。Pandas 是一种强大的数据分析工具包,能够高效操作 CSV/Excel 数据结构。 1. **导入必要的库** 安装 pandas 后即可直接调用其函数处理 Excel 文档。 2. **读取 Excel 文件至 DataFrame 对象** 转化后的 DataFrame 支持多种灵活的操作模式。 3. **寻找重复条目** 使用内置 `.duplicated()` 方法标记所有重复出现过的记录位置。 ```python import pandas as pd def check_duplicates_in_excel(filename, column_name): df = pd.read_excel(filename) duplicates_mask = df.duplicated(subset=[column_name], keep='first') # 默认保留首次出现的位置作为唯一 duplicated_rows = df[duplicates_mask] print(f'以下是在 "{filename}" 的 "{column_name}" 列找到的重复值:') for index, row in duplicated_rows.iterrows(): print(row[column_name]) check_duplicates_in_excel('your_file.xls', 'YourColumnName') ``` 以上脚本会打印出给定 Excel 文件特定列下的所有重复值及其所在行号[^3]。 --- #### 总结 无论是采用 Java 编程还是 Python 解决方案,都可以有效达成目的—识别 Excel 单元格里的重复内容。两种语言各有优劣,在实际应用时可根据团队技术栈和个人偏好做出选择。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值