الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

array of arrayList of class objects

بدأه دمعة غيم في 19 ديسمبر 2011 · 2 رد · 580 مشاهدة · في JavaSE
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

عندي سؤال مؤرقني فأرجو المساعدة كما تعودنا دائما ولكم جزيل الشكر

class A
{
    int a;
    ArrayList<String> ar=new ArrayList<String>();
}

class B
{
  static ArrayList<A> ar2=new ArrayList<A>();
}

class C
{
    static B[] X=new B[10];
    public static void main(String[] arg)
    {
        for (int i=0;i<10;i++)
            X=new B();
    }
}

الكود السابق هو الفكرة المختصرة لما اريد. كيف يمكنني الوصول الى المتغير a و ar من خلال المصفوفة X التي بالكلاس سي . واذا حولنا الـ X من مصفوفة عادية الى مصفوفة من نوع لست كيف راح يتغير الكود.

تقبلوا تحياتي

#2

السلام عليكم ..

  1. الكود :
    package setIntersection;
    
    import java.util.ArrayList;
    
    class A
    {
    	int a;
    	ArrayList<String> ar=new ArrayList<String>();
    }
    
    class B
    {
      ArrayList<A> ar2=new ArrayList<A>();
    }
    
    class C
    {
    	static B[] X=new B[10];
    	public static void main(String[] arg)
    	{
        	for (int i=0;i<10;i++)
        	{
            	X=new B();
            	A a =new A();
            	a.a = i ;
            	a.ar.add("GGGGGG");
            	a.ar.add("FFFFFFF");
            	X.ar2.add(a);
        	}
    
        	for (int i=0;i<10;i++)
        	{
    
            	for(int j = 0 ; j < X.ar2.size(); j++)
            	{
                	A a = X.ar2.get(j);
                	System.out.println(a.a);
                	for(int k = 0 ; k < a.ar.size() ; k ++)
               		System.out.println(a.ar.get(k));
    
            	}
        	}
    	}
    }

  2. لاحظ انه لا داعي أن تكون ar2 من نوع static .
  3. الفرق بين الــ Array الــ ArrayList
    1. طول الــArray هو
      arr.Length()
      , بينما طول الــ ArrayList هو
      list.size()
    2. الوصول إلى العناصر يتم بحلقة for من الــ 0 إلى عدد العناصر و في الــ Array نصل للعنصر في المكان i بالكود
       arr
      أما في الــ ArrayList فنصل للعنصر i بالكود
      list.get(i);
    3. لا يمكن حذف العناصر من الــ Array أي عندما نحجز مصفوفة بطول خمسة مثلا سيبقى طولها خمسة و لا يمكن زيادته أو نقصانه .. طبعا هناك طرق لنسخ المصفوفة لمصفوفة أكبر أو أصغر و لكن ذلك يعني حجز مصفوفة جديدة , أما الــ ArrayList فيمكن حذف و إضافة العناصر و بالتالي يتغير حجمها ..
    4. لو حولنا X من Array إلى ArrayList يكون حسب الملاحظات السابقة :

      {
      static ArrayList<B> X= new ArrayList<B>();;
      public static void main(String[] arg)
      {
      for (int i=0;i<10;i++)
      {
      X.add(i, new B());
      A a =new A();
      a.a = i ;
      a.ar.add("GGGGGG");
      a.ar.add("FFFFFFF");
      X.get(i).ar2.add(a);
      }

      for (int i=0;i<10;i++)
      {

      for(int j = 0 ; j < X.get(i).ar2.size(); j++)
      {
      A a = X.get(i).ar2.get(j);
      System.out.println(a.a);
      for(int k = 0 ; k < a.ar.size() ; k ++)
      System.out.println(a.ar.get(k));

      }
      }
      }
      }
      class C

تم تعديل هذه المشاركة بواسطة houssam11350_11350 في 19 ديسمبر 2011 في 16:56

2

لا إله إلا الله ... محمد رسول الله

لو كانت مشاركتي مفيدة و تريد تشجيعي على المزيد من العطاء , فضلا قم بتقييم المشاركة

المعرًف القديم : houssam11350_11350

من مواضيعي : ArabGenCode : مولد كود و إجراءات مخزنة و واجهات لجداول سيكوال سيرفر

#3

شكرا جزيلا ربي يجزيك الجنة يارب

تحياتي

مواضيع مشابهة