我的数组列表包含9个人。每个人都有一个String类型的name值、int类型的age值和Enum类型的值(TV、SMARTPHONE、CAR(。我必须创建一个实现方法,根据产品名称查找名称。如果arrayListName包含SMARTPHONE,则使用智能手机返回所有名称。
public void showByProduct(Product SMARTPHONE) {
public void showByProductName(Product SMARTPHONE) {
if (arrayListName.contains(SMARTPHONE))
System.out.println("found"+nameofowner);
else {
System.out.println("not found");
}
}
您需要对List
进行迭代,对于每个Person,检查其product
字段的值是否与您在方法中传递的值相同。
此外,您还需要在方法的本地有一个List
,在其中添加与Product Name
匹配的Person
,然后在最后返回该List
。
public List<Person> showByProductName(Product product) {
List<Person> localList = new ArrayList<Person>();
for (Person person: persons) { // persons is the original List.
if (person.getProduct() == product) {
localList.add(person);
}
}
return localList;
}
在调用此方法的地方,将返回值存储在List
引用中:-
List<Person> result = showByProductName(Product.SMARTPHONE);
System.out.println(result);
请注意,可以使用==
比较两个enum
值。由于CCD_ 10是CCD_。
附言:-不要将参数名称设为SMARTPHONE
。这是一个枚举值。此外,根据Java命名约定,变量名称应以小写字母开头,并遵循camelCasing
。
for (Person p : arrayListName){
if(p.geProduct()==product)
System.out.println("Found : " + p.name());
}
然而,这并不是很酷。我认为你应该用Enum对你的人进行分类。