2012-06-10 1 views
0

Je les classes suivantes:Comment mettre à jour les propriétés d'un objet contenu dans une ArrayList?

class A { 
    String s; 
    Double d; 
    A a; 
} 

class B { 
    String s; 
    Double d; 
} 

Et les ArrayLists suivants:

List<A> A_list = new ArrayList<A>(); // List of A class object 
List<B> B_list = new ArrayList<B>(); // List of B class object 

Tout ce que je dois faire est:

iterate through A_list 
    iterate through B_list 
     if A_list.get(i).s is equal to B_list.get(j).s 
     // just update this A_list.get(i).d value without changing other properties 
     then A_list.get(i).d = A_list.get(i).d + B_list.get(j).d; 

quelqu'un peut s'il vous plaît me suggérer (avec quelques exemple de code si possible) comment puis-je mettre à jour une propriété d'objet particulière dans un arrayList d'objet sans changer d'autres propriétés? Je ne suis pas tellement expérimenté en Java. Alors pardonnez-moi si j'ai fait une erreur!

Merci!

+1

Vous avez déjà la solution. 'A_list.get (i) .d' est la seule chose qui est changée ... – hage

+0

@hage: cela changera-t-il? N'est-il pas nécessaire de faire un A_list.set() si j'ai plus d'une liste B et que j'essaie de faire cette mise à jour plus loin? – flyleaf

+0

Les listes ne sauvegardent que les références aux objets qui y sont placés. Ainsi, lorsque vous modifiez une propriété d'un élément dans une liste, ce changement persiste instantanément. – hage

Répondre

0

J'espère que cela peut vous être utile.

for (A arr : A_list){ 

     for (B brr : B_list){ 

      if ((arr.s).equals(brr.s)){ 

        arr.d = arr.d + brr.d; 

     } 

} 


} 
Questions connexes