java - 检查一个数组列表是否包含两个字符串

我有一个类似下面的 pojo 类

public CategoryModel {

public String getName() {
        return Name;
    }

    public void setName(String name) {
        Name = name;
    }

}

我创建了一个如下所示的数组列表。

List<CategoryModel> variantCategoryModelList = new ArrayList<>();
CategoryModel cat1= new CategoryModel();
cat1.setName(TEST1);
CategoryModel cat2= new CategoryModel();
cat2.setName(TEST1);
list.add(cat1);
list.add(cat2);

我必须检查值“TEST1”和“TEST2”是否存在于列表中,如果两个值都存在于“列表”中则返回“true”,我尝试了类似下面的方法,尽管我的“列表”有两个值,它返回 false。请你帮我检查我做错了什么,顺便说一句,我正在使用 JDK 11。

final Optional<CategoryModel> optionalData = variantCategoryModelList.stream().
                filter(valueData -> TEST1.equalsIgnoreCase(valueData.getName())
                        && TEST2.equalsIgnoreCase(valueData.getName())).findFirst();

        if(optionalData.isPresent()){
            return true;
        }

最佳答案

您可以将您的 CategoryModel 映射到名称并收集到字符串列表并调用 List.containsAll :

return variantCategoryModelList.stream()
                               .map(CategoryModel::getName)
                               .collect(Collectors.toList())
                               .containsAll(Arrays.asList("TEST1","TEST2"));

https://stackoverflow.com/questions/64225042/

相关文章:

python - 在Python中随机生成二维列表

python - 为什么 python 的 "gc.collect()"没有按预期工作?

python-3.x - Pygame - 不存在 "Setup"文件,正在运行 "buildcon

python-3.x - Python Pandas : groupby one column, 只

java - 如何使用 void set 方法在静态常量帮助程序类中创建对象?

reactjs - 不能在 JSX 属性中使用 bool 值

haskell - 在 Haskell 的 do 上下文中应用构造函数

javascript - 使用 useEffect 加载脚本

c# - 无法将 TextMeshPro 文本获取到 Unity 中的变量槽

javascript - 在 React Native 中安排本地通知不起作用