判断 list 集合是否含有重复对象

    /**
     *  true 重复
     * @param orderList
     * @return
     */
    private  boolean containsRepeatAttachment(List<DesignSoftwareUnifiedEngineeringAttachmentDTO> orderList) {
        if(org.springframework.util.CollectionUtils.isEmpty(orderList)){
            return false;
        }
        if(orderList.size() == 1){
            return false;
        }
        Set<String> keys = new HashSet<>(orderList.size());
        for (int i = 0; i < orderList.size(); i++) {
            final String key = new StringBuffer(orderList.get(i).getName()).append(orderList.get(i).getSuffix()).toString();
            if(keys.contains(key)){
                return true;
            }else{
                keys.add(key);
            }
        }
        return false;
    }
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
可以使用Node.js中的`Readable`流来处理这个问题。具体步骤如下: 1. 创建一个`Readable`流对象,并添加`data`事件监听器。在`data`事件中,将读取到的数据添加到一个数组中。 2. 在`end`事件中,遍历数组,使用一个`Set`对象判断是否重复数据。可以将每个对象的`id`属性作为判断唯一性的依据。 3. 最后,将判断结果返回给调用方。 以下是示例代码: ```javascript const { Readable } = require('stream'); function checkDuplicateObjects(list) { const result = { isDuplicate: false, duplicates: [] }; const data = []; const readable = new Readable({ objectMode: true, read() {} }); readable.on('data', (chunk) => { data.push(chunk); }); readable.on('end', () => { const set = new Set(); data.forEach(item => { if (set.has(item.id)) { result.isDuplicate = true; result.duplicates.push(item); } else { set.add(item.id); } }); readable.emit('checkResult', result); }); list.forEach(item => { readable.push(item); }); readable.push(null); return readable; } // Example usage const list = [ { id: 1, name: 'John' }, { id: 2, name: 'Mary' }, { id: 1, name: 'Peter' }, { id: 3, name: 'Lucy' } ]; const resultStream = checkDuplicateObjects(list); resultStream.on('checkResult', (result) => { console.log(`Is there any duplicate object? ${result.isDuplicate}`); console.log(`Duplicate objects: ${JSON.stringify(result.duplicates)}`); }); ``` 在上面的示例代码中,我们定义了一个`checkDuplicateObjects`函数,它接收一个包含对象的数组作为参数,并返回一个`Readable`流。 在函数中,我们通过创建一个`Readable`流对象,并将数组中的每个对象作为流的数据块推送进去。在`end`事件中,我们遍历数组,使用一个`Set`对象判断是否重复数据。如果有重复数据,我们将其添加到结果对象中,并设置`isDuplicate`为`true`。最后,我们通过`emit`方法将结果对象发送出去。 在调用`checkDuplicateObjects`函数时,我们可以监听`checkResult`事件来获取判断结果。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值