我有一个类似下面的 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"));
关于java - 检查一个数组列表是否包含两个字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64225042/