You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Java中比较两个ArrayList集合?对象与字符串数组匹配问题

解决对象数组与字符串数组的元素匹配问题

你之前的代码无法生效的原因很直接:array2.stream().anyMatch(array1::contains)是把array2里的整个对象拿去和array1中的字符串元素做匹配,对象和字符串属于不同类型,自然没法匹配成功。

要实现需求,你需要先提取对象数组中每个元素的itemType属性值,再和字符串数组做匹配,修改后的代码如下:

// 假设你的对象类有getItemType()方法用于获取itemType属性
boolean anyMatch = array2.stream()
    .map(item -> item.getItemType())
    .anyMatch(array1::contains);

如果你的对象类有明确的类名(比如叫Item),也可以用方法引用让代码更简洁:

boolean anyMatch = array2.stream()
    .map(Item::getItemType)
    .anyMatch(array1::contains);

这段代码先通过map操作把对象流转换为对应的itemType字符串流,再用anyMatch判断是否存在任意一个字符串在array1中,完全符合你“任一元素匹配则返回true”的需求。

内容的提问来源于stack exchange,提问作者Krish

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.14 00:02:31