我有一个名为Paragens
这样的类:的Java看看ArrayList包含字符串
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。
这个类,我创建几个Paragens对象,并将它们存储这样一个ArrayList内的主要方法:
public static void main(String[] args) {
ArrayList<Paragens> paragens = new ArrayList<Paragens>();
paragens.add(new Paragens("name1");
// ... add more paragens
}
这是工作确定。如果我插入一串白细胞并打印它们,我可以看到达到一切都好。
我想要做的是要求用户输入一个paragem名称,然后我想看看如果该paragem已经在ArrayList中。
String name;
System.out.println("Insert paragem name: ");
pickName = sc.nextLine();
System.out.println(paragens.contains(pickName));
我在做什么错?
或覆盖'equals' –
如果你将它变成了它自己的方法,你可以不用'found'标志,只需在循环中返回true或者在返回后返回false。 – Thilo
@Anonymouse:不要重写equals来使Paragem等于一个String。那将是*非常规的(例如,平等将不再是对称的)。 Equals,hashCode和这些方法是非常通用的,期望遵循某些合同,并且不应该做出意想不到的事情来适应某些特殊的目的。 – Thilo