gpt4 book ai didi

java - 对 List 集合中的对象使用 Contains

转载 作者:行者123 更新时间:2023-11-29 07:25:56 25 4
gpt4 key购买 nike

我正在尝试使用 Contains 方法通过他的名字在 List 集合中查找一个对象,但不知何故,它不起作用。我应该如何使用它?

这就是我尝试使用它的方式

CandyDao.getAllCandys().contains("Caramel")

但它找不到我需要的对象。

CandyDao.java

public class CandyDao {
private List<Candy> candys = Arrays.asList(new Candy("Caramel", 3, false),
new Candy("Marmelade", 2, true));

public List<Candy> getAllCandys(){
return candys;
}
}

糖果.java

  public class Candy {
private String name;
private float price;
private boolean InStock;

public Candy() {
}

public Candy(String name, float price, boolean InStock) {
setName(name);
setPrice(price);
setInStock(InStock);
}

public String getName() {
return name;
}

public void setName(String name) {
this.name = name;
}

public float getPrice() {
return price;
}

public void setPrice(float price) {
this.price = price;
}

public boolean getInStock() {
return InStock;
}

public void setInStock(boolean InStock) {
this.InStock = InStock;
}
}

最佳答案

由于列表包含Candy对象,contains()方法需要一个Candy对象来进行比较,所以不能使用包含(“焦糖”)

要检查列表是否包含 name"Caramel"Candy 对象,您可以使用 Java 8+ Streams 来执行搜索:

CandyDao.getAllCandys().stream().Map(Candy::getName).anyMatch("Caramel"::equals);

等效的非流版本是:

boolean hasCaramel = false;
for (Candy candy : CandyDao.getAllCandys()) {
if ("Caramel".equals(candy.getName())) {
hasCaramel = true;
break;
}
}

关于java - 对 List 集合中的对象使用 Contains,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52803869/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com