0
点赞
收藏
分享

微信扫一扫

java 判断集合对象是否有重复ID

Mezereon 2023-07-19 阅读 85

Java 判断集合对象是否有重复ID

在Java编程中,我们经常需要处理集合对象,而其中一个常见的任务就是判断集合中的对象是否有重复的ID。在本篇文章中,我们将介绍如何使用Java来实现这个任务。

1. 集合对象的定义

首先,我们需要定义一个包含ID属性的对象。假设我们有一个Person类,其中包含一个id属性:

public class Person {
    private int id;
    
    // 构造函数和其他属性省略
    
    public int getId() {
        return id;
    }
    
    public void setId(int id) {
        this.id = id;
    }
}

2. 创建一个集合对象

接下来,我们创建一个包含多个Person对象的集合,并让其中一些对象具有相同的ID。这里我们使用ArrayList作为集合对象的示例:

import java.util.ArrayList;
import java.util.List;

public class Main {
    public static void main(String[] args) {
        List<Person> people = new ArrayList<>();
        
        Person p1 = new Person();
        p1.setId(1);
        people.add(p1);
        
        Person p2 = new Person();
        p2.setId(2);
        people.add(p2);
        
        Person p3 = new Person();
        p3.setId(1);
        people.add(p3);
        
        Person p4 = new Person();
        p4.setId(3);
        people.add(p4);
    }
}

在上述示例中,我们创建了一个people集合,并向其中添加了4个Person对象,其中对象p1p3具有相同的ID。

3. 判断集合中是否有重复ID

接下来,我们将介绍两种常见的方法来判断集合中是否有重复的ID。

方法一:使用Set

首先,我们可以使用Set来存储集合中的ID,并判断是否存在重复的ID。Set是一种不允许重复元素的集合,利用这个特性可以很方便地判断集合中是否有重复的ID。

import java.util.HashSet;
import java.util.Set;

public class Main {
    public static void main(String[] args) {
        List<Person> people = new ArrayList<>();
        // 添加Person对象...
        
        Set<Integer> idSet = new HashSet<>();
        boolean hasDuplicateId = false;
        
        for (Person person : people) {
            int id = person.getId();
            
            if (idSet.contains(id)) {
                hasDuplicateId = true;
                break;
            }
            
            idSet.add(id);
        }
        
        if (hasDuplicateId) {
            System.out.println("集合中存在重复ID");
        } else {
            System.out.println("集合中不存在重复ID");
        }
    }
}

在上述代码中,我们创建了一个idSet来存储集合中的ID,然后遍历集合中的每个Person对象,判断ID是否已经存在于idSet中。如果存在重复的ID,我们将hasDuplicateId标志设置为true,并跳出循环。最后,根据hasDuplicateId的值输出结果。

方法二:使用Map

另一种方法是使用Map来存储ID和对应的计数。我们可以遍历集合中的每个Person对象,将ID作为键存储在Map中,同时记录每个ID出现的次数。如果某个ID的计数大于1,则说明集合中存在重复的ID。

import java.util.HashMap;
import java.util.Map;

public class Main {
    public static void main(String[] args) {
        List<Person> people = new ArrayList<>();
        // 添加Person对象...
        
        Map<Integer, Integer> idCountMap = new HashMap<>();
        boolean hasDuplicateId = false;
        
        for (Person person : people) {
            int id = person.getId();
            int count = idCountMap.getOrDefault(id, 0);
            idCountMap.put(id, count + 1);
        }
        
        for (int count : idCountMap.values()) {
            if (count > 1) {
                hasDuplicateId = true;
                break;
            }
        }
        
        if (hasDuplicateId) {
            System.out.println("集合中存在重复ID");
        } else {
            System.out.println("集合中不存在重复ID");
        }
    }
}

在上述代码中,我们创建了一个idCountMap来存储ID和对应的计数。首先

举报

相关推荐

0 条评论