数组列表。逐个产品类型访问名称

时间:2013-01-18 15:57:35

标签: java list sorting enums arraylist

我的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");
            }
        }

2 个答案:

答案 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对你的人进行分类。