LinkedLists试图调用一个类

时间:2017-04-25 04:48:41

标签: java linked-list

我对链接列表很新,但是目前我有一个对象的链接列表,并且因为使用链接列表中的一个对象而调用另一个方法而丢失了。

public Store() {
    products.add(new Product("Whiteboard Marker", 85, 1.50));
    products.add(new Product("Whiteboard Eraser", 45, 5.00));
    products.add(new Product("Black Pen", 100, 1.50));
    products.add(new Product("Red Pen", 100, 1.50));
    products.add(new Product("Blue Pen", 100, 1.50));

}

这些是我在链表中​​的当前对象。

我有一个名为product的类,其函数为getName。

public String getName() {
    return this.name;
}

所以我想知道在调用函数getName时它会如何返回“Black Pen”

谢谢。

3 个答案:

答案 0 :(得分:3)

如果我理解正确,你有一个产品对象列表,它有一个名字的getter,你想得到产品的名称,而它在Arraylist中。根据这个假设,我创建了一个虚拟personArrayList并调用产品的getter并打印它。

如果您知道对象在ArrayList中的位置,那么只需在ArrayList中提供对象的索引即可轻松打印它。否则,如果您知道此人的某些独特属性,则可以使用if条件过滤该属性。

我已添加了这两个案例,并将其纳入评论部分。

   class Person {
    private String name;
    private String location;

    public Person(String name,String location) {
        this.name = name;
        this.location = location;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getLocation() {
        return location;
    }

    public void setLocation(String location) {
        this.location = location;
    }
}

public class Test {
    public static void main(String[] args) {

        List<Person> productList = new ArrayList<>();
        productList.add(new Person("Amit","india"));
        productList.add(new Person("A", "bangalore"));

        // case 1 :- when you know the location of person in LL.
        System.out.println(productList.get(0).getName());

        // case 2:- when you know some unique peroperty of person and filtering on base of this.
        for(Person product : productList){
            if(product.getLocation().equalsIgnoreCase("india")){
                System.out.println("name of person " + product.getName());
            }
        }
    }
}

Output :-
Amit
name of person Amit

答案 1 :(得分:1)

在你的情况下,要获得“黑笔”,你会写:

products.get(2).getName();

答案 2 :(得分:0)

要调用LinkedList中存储的对象的方法,您必须从列表中获取此对象。获取链表的第一个元素

products.getFirst().getName();

获取链表的第一个元素

products.getLast().getName();

请注意,您只能从第一个或从最后一个开始按顺序从链接列表中获取元素。