Java List

İki listi müqayisə edib birində olmayan elementi o biri listdən necə əlavə etmək olar? Məsələn mənim ray adlı listim var. Burada bütün rayonlar var. Bir də hesabat verən rayonların siyahısı olan başqa bir listim var. Mən istəyirəmki bu iki listi müqayisə edim, ray listindəki rayon 2 ci listdə yoxdursa onu 2 ci listə əlavə edim, elavə etdiyim rayonların digər qiymətlərinə default 0.0 verim. Belə bir kod yazmışam. [code] for (IRayon r : iRayons) { for (Cedvel c : sut5) { if (!r.getKod().contains(c.getKodarazi())) { c.setKodarazi(r.getKod()); c.setSum(0.0); sut5.add(c); } } [/code] Amma istədiyim nəticəni vermir

Verilmiş cavablar və yazılan şərhlər (3 cavab var)

Ramin Orucov (2011-09-18 13:19:52)
Səhv şərtin özündədir: [code]if (!list2.contains(i.getKod())){[/code] list2 siyahısında Object1 sinifindən olan obyektlər var, "contains" metoduna obyektin özünü verib axtarmaq lazımdır, onun kodunu yox. [code]if (!list2.contains(i)){[/code] Sizin Object1 sinifində "equals" və "hashCode" metodları override olunub?

Emil.Axmedov (2011-09-08 15:00:34)
Kodu tam uyğunlaşdırdım oz koduma. [code] public static void main(String[] args) { List<Object1> list1=new ArrayList<Object1>(); List<Object1> list2=new ArrayList<Object1>(); list1.add(new Object1("001" , 1)); list1.add(new Object1("002" , 2)); list1.add(new Object1("003" , 3)); list1.add(new Object1("004" , 4)); list2.add(new Object1("002" , 2)); list2.add(new Object1("003" , 3)); list2.add(new Object1("004" , 4)); for (Object1 i: list1){ if (!list2.contains(i.getKod())){ list2.add(new Object1(i.getKod(), 0)); } } for (Object1 i: list2){ System.out.println(i.getKod()+" "+i.getSum()); } } [/code] 002 2 003 3 004 4 001 0 002 0 003 0 004 0 belə bir nəticə çıxır. Yəni müqayisə etmir, 1 ci listi 2 ci listə əlavə edir, qiymətlərə 0 yazır.

Emil.Axmedov (2011-09-08 14:14:58)
[code] public static void main(String[] args) { List<Integer> list1=new ArrayList<Integer>(); List<Integer> list2=new ArrayList<Integer>(); list1.add(1); list1.add(2); list1.add(3); list1.add(4); list2.add(2); list2.add(3); list2.add(4); for (Integer i: list1){ if (!list2.contains(i)){ list2.add(i); } } for (Integer i: list2){ System.out.println(i); } } [/code] burda yazdığım istədiyim nəticəni verir. [code] for (IRayon r : iRayons) { if (!sut1.contains(r.getKod())) { for (Cedvel c : sut1) { c.setKodarazi(r.getKod()); c.setSum(0.0); sut1.add(c); } } } [/code] Bu kodda səhv verir

Mövzu üzrə bənzər suallara da baxa bilərsiniz.

Ebayda listn olunan mal

Ebayda malı list edəndə belə bir yazı yazılır

Facebookda list

Facebook-da toplu dost silmək