2017-04-25 24 views
3

私はリンクリストの新機能ですが、現在オブジェクトのリンクリストがあり、リンクされたリストのオブジェクトの1つを使用して別のメソッドを呼び出す方法が失われました。LinkedListsクラスを呼び出そうとしています

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)); 

} 

これらは、LinkedListの中に私の現在のオブジェクトです。

私はgetNameという関数を持つproductというクラスを持っています。

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

は、だから私は、関数のgetNameを呼び出すとき、それは

を「黒のペン」を返すだろうか不思議でしたありがとうございました。

+0

プライベート文字列名、プライベートint株式、プライベートダブル価格; – Dan

+0

あなたはポインタに精通していますか? – NonCreature0714

+0

ポインタにはあまりよく慣れていませんが、今のところよく見ません – Dan

答えて

3

私はそれを正しく理解していれば、商品名のゲッターを持っていて製品の名前を取得したい製品オブジェクトのリストがあります。この前提によると、私はダミーpersonArrayListを作成し、製品のゲッターを呼び出して印刷しました。

あなたは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 
+0

'get(int)'を使うことは 'LinkedList'で非効率的です。インデックスによるアクセスが必要な場合は、 'ArrayList'を使用してください。 –

+0

@ P.J.Meisch、私は同意しますが、私はこれがOPの関心事だとは思わないし、私のコードではArrayListだけを使用していることに気がつくと思います。また、答えにarraylistへのリンクリストを変更しました。 –

1

、取得するには、「黒のペンを、」次のように記述します。

products.get(2).getName(); 
0

リストからこのオブジェクトを取得する必要がLinkedListに格納されたオブジェクトのメソッドを呼び出すには。あなただけ順次最初または最後からから始まるリンクリストから要素を取得することができ、リンクリスト

products.getLast().getName(); 

ノートの最初の要素を取るために、リンクされたリスト

products.getFirst().getName(); 

の最初の要素を取ります。

関連する問題