gpt4 book ai didi

Java判断arraylist是否包含字符串

转载 作者:行者123 更新时间:2023-12-01 06:36:30 26 4
gpt4 key购买 nike

我有一个名为 Paragens 的类,如下所示:

public class Paragens {
static int contadorParagens = 1;

String nomeParagem;
int id;

public Paragens(String nomeParagem) {
this.nomeParagem = nomeParagem;
this.id = contadorParagens++;
}

// getters and setters for nomeParagem
}

每个 Paragens 对象都有一个名称和一个 Id。

这个类有一个 main 方法,我可以在其中创建几个 Paragens 对象并将它们存储在 ArrayList 中,如下所示:

public static void main(String[] args) {
ArrayList<Paragens> paragens = new ArrayList<Paragens>();
paragens.add(new Paragens("name1");
// ... add more paragens
}

这工作正常。如果我插入一堆paragens并打印它们,我可以看到一切都好。

我想做的是要求用户输入一个参数名称,然后我想查看该参数是否已经在 ArrayList 中。

String name;
System.out.println("Insert paragem name: ");
pickName = sc.nextLine();
System.out.println(paragens.contains(pickName));

我做错了什么?

最佳答案

contains检查列表中是否包含您递给它的实际内容。在本例中,您将传入 String 名称,但将其与 Paragem 实例进行比较。 contains 无法神奇地猜测它应该查看 Paragem 实例上的给定属性来比较字符串。

您可以轻松地循环列表来亲自查找:

boolean found = false;
for (Paragem p : paragems) {
if (p.nomeParagem.equals(pickName)) { // Or use an accessor function for `nomeParagem` if appropriate
found = true;
break;
}
}

...或作为函数:

boolean containsParagemWithName(ArrayList<Paragem> paragems, String pickName) {
for (Paragem p : paragems) {
if (p.nomeParagem.equals(pickName)) {
return true;
}
}
return false;
}

关于Java判断arraylist是否包含字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8284936/

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