gpt4 book ai didi

java - 包含 Java 中对象列表的方法

转载 作者:行者123 更新时间:2023-12-02 09:19:59 25 4
gpt4 key购买 nike

我有一个对象“SaleItem”列表。它们都是同一类的对象。每个对象都有一个 String 字段“name”和一个 int 字段“value”。我想看看其中一个对象是否包含名称。看来我不能使用“包含”方法来做到这一点。我看到两个解决方案。一种是遍历所有对象来检查是否有一个指定的名称:

    for (SaleItem item: myList) {
if (item.getName() == "banana") {
// do stuff
}
}

另一个解决方案是从“myList”创建一个新的字符串列表,并使用 contains 方法:

    ArrayList<String> nameList = new ArrayList<>();
for (SaleItem item: myList) {
nameList.add(item.getName());
}
if (nameList.contains("banana")) {
// do stuff
}

我想如果我只执行一次,第一种方法将是最有效的,如果我执行多次,第二种方法会更有效。作为一个没有受过正规教育的新手,我不知道在这种情况下什么是合适的。

最佳答案

由于 SaleItem.getName() 返回一个字符串,您应该能够使用“contains”方法。您似乎错误地初始化了 ArrayList 或 SaleItem 对象。

public class TestApp {
public static void main(String[] args) {

List<SaleItem> list = new ArrayList<SaleItem>();
SaleItem s1 = new SaleItem();
s1.setName("banana");
s1.setValue(1);
SaleItem s2 = new SaleItem();
s2.setName("apple");
s2.setValue(2);
list.add(s1);
list.add(s2);
for (SaleItem item: list) {
if (item.getName().contains("banana")) {
System.out.println("Pass");
}
}
}

}

class SaleItem {
private String name;
private int value;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getValue() {
return value;
}
public void setValue(int value) {
this.value = value;
}
}

关于java - 包含 Java 中对象列表的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58759744/

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