我的Arraylist包含9个人。每个人都有一个String类型的名称值,一个int类型的年龄值和一个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");
}
}
答案 0 :(得分:2)
您需要迭代List
,并为每个人检查它的product
字段是否具有您在方法中传递的值的值。
此外,您需要在方法中再添加一个List
本地方法,在其中添加与Person
匹配的Product Name
,然后在结尾返回{ {1}}。
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
值。由于==
是enum
。
P.S:请勿将您的参数名称设为singleton
。这是一个枚举值。此外,根据 Java命名约定,变量名称应以小写字母开头,并在其上跟随SMARTPHONE
。
答案 1 :(得分:0)
for (Person p : arrayListName){
if(p.geProduct()==product)
System.out.println("Found : " + p.name());
}
然而,这并不是很酷。我认为你应该用Enum对你的人进行分类。