الوقت/التاريخ الآن هو الجمعة أغسطس 07, 2020 1:44 am

3 نتيجة بحث عن arrays

التعامل مع قوائم المصفوفات ArrayList

أهلا بكم 

في هذا المقال ، سنتعلم سويا كيفية التعامل مع الفئة #ArrayList. سنتعرف على عمليات وأساليب #ArrayList المختلفة باستخدام الأمثلة.

1_ تعريف الفئة ArrayList


فئة #ArrayList عبارة عن مصفوفة يمكن تغيير حجمها ، ويمكن العثور عليها في حزمة java.util.حيث انها تقوم بتطبيق الوجهة List

الوسم arrays على المنتدى منتدى مصر التقني Java-arraylist-class

2_الفرق بين المصفوفات #Arrays و قوائم المصفوفات #ArrayList


الفرق بين المصفوفات العادية Array و بين قوائم المصفوفات  #ArrayList في Java ، هو أنه لا يمكن تعديل حجم الصفيف Array  بينما يمكن إضافة العناصر وإزالتها من ArrayList وقتما تشاء.

وذلك لانة في لغة Java ، نحتاج إلى الإعلان عن حجم المصفوفة قبل أن نتمكن من استخدامها. بمجرد الإعلان عن حجم الصفيف ، من الصعب تغييره.

لمعالجة هذه المشكلة ، يمكننا استخدام فئة #ArrayList. تتيح لنا فئة #ArrayList الموجودة في حزمة java.util إنشاء صفائف قابلة لتغيير الحجم.

على عكس المصفوفات ، يمكن أن تقوم قوائم الصفيف (كائنات من فئة ArrayList) بتعديل سعتها تلقائيًا عندما نضيف عناصر أو نزيلها منها. وبالتالي ، تُعرف قوائم الصفيف أيضًا بالمصفوفات الديناميكية.

3_كيفية الانشاء #ArrayList


إليك كيفية إنشاء قوائم المصفوفات في Java:

الكود:
ArrayList<Type> arrayList= new ArrayList<>();


حيث أن Type تشير الى نوع البيانات المراد تخزينها فى قائمة المصفوفة فمثلا

الكود:
// create Integer type arraylist
ArrayList<Integer> A1 = new ArrayList<>();

// create String type arraylist
ArrayList<String> A2 = new ArrayList<>();


ففى قائمة المصفوفة A1 جعلنها من نوع رقمي int فى حين قائمة المصفوفة A2 جعلنها نصية String وكما يمكنا نجعلها تحصل على اكثر من قيمة وذلك على النحو التالى :

الكود:
ArrayList<Integer,String> A3 = new ArrayList<>();


كما يمكننا أيضًا إنشاء قوائم المصفوفات باستخدام واجهة List. هذا لأن فئة #ArrayList تطبق واجهة List كما اخبر سابقا وذلك على النحو التالى :

الكود:
List<String> A4 = new ArrayList<>();


4_طرق و اساليب قوائم المصفوفات Methods of ArrayList


يوفر قوائم المصفوفات #ArrayList العديد من الطرق التي تسمح لنا بتنفيذ عمليات قائمة المصفوفة....على النحو التالى :

إضافة عناصر إلى ArrayList

1. باستخدام طريقة add ()

لإضافة عنصر واحد إلى قائمة المصفوفة ، نستخدم طريقة add (). فمثلا،

الكود:
import java.util.ArrayList;

class Main {
    public static void main(String[] args){
        ArrayList<String> animals = new ArrayList<>();

        // Add elements
        animals.add("Dog");
        animals.add("Cat");
        animals.add("Horse");
        System.out.println("ArrayList: " + animals);
    }
}


Output

ArrayList: [Dog, Cat, Horse]

2. استخدام رقم الفهرس index number

يمكننا أيضًا إضافة عناصر إلى قائمة صفيف باستخدام الفهارس. فمثلا

الكود:
import java.util.ArrayList;

class Main {
    public static void main(String[] args){
        ArrayList<String> animals = new ArrayList<>();

        // Add elements
        animals.add(0,"Dog");
        animals.add(1,"Cat");
        animals.add(2,"Horse");
        System.out.println("ArrayList: " + animals);
    }
}



Output

ArrayList: [Dog, Cat, Horse]

3. إضافة عناصر قائمة صفيف إلى قائمة صفيف أخرى

لإضافة جميع عناصر قائمة الصفيف إلى قائمة صفيف جديدة ، نستخدم طريقة addAll (). فمثلا،

الكود:
import java.util.ArrayList;

class Main {
    public static void main(String[] args){
        ArrayList<String> mammals = new ArrayList<>();
        mammals.add("Dog");
        mammals.add("Cat");
        mammals.add("Horse");
        System.out.println("Mammals: " + mammals);

        ArrayList<String> animals = new ArrayList<>();
        animals.add("Crocodile");

        // Add all elements of mammals in animals
        animals.addAll(mammals);
        System.out.println("Animals: " + animals);
    }
}


الوصول إلى عناصر ArrayList

1. باستخدام طريقة get ()

للوصول عشوائيًا إلى عناصر قائمة المصفوفات ، نستخدم طريقة get (). فمثلا،

الكود:
import java.util.ArrayList;

class Main {
    public static void main(String[] args) {
        ArrayList<String> animals= new ArrayList<>();

        // Add elements in the array list
        animals.add("Dog");
        animals.add("Horse");
        animals.add("Cat");
        System.out.println("ArrayList: " + animals);

        // Get the element from the array list
        String str = animals.get(0);
        System.out.print("Element at index 0: " + str);
    }
}


2. استخدام طريقة المكرر iterator

للوصول إلى عناصر قائمة المصفوفة بالتسلسل ، نستخدم طريقة iterator . يجب علينا استيراد حزمة java.util.Iterator لاستخدام هذه الطريقة. فمثلا
الكود:
import java.util.ArrayList;
import java.util.Iterator;

class Main {
    public static void main(String[] args){
        ArrayList<String> animals = new ArrayList<>();

        // Add elements in the array list
        animals.add("Dog");
        animals.add("Cat");
        animals.add("Horse");
        animals.add("Zebra");

        // Create an object of Iterator
        Iterator<String> iterate = animals.iterator();
        System.out.print("ArrayList: ");

        // Use methods of Iterator to access elements
        while(iterate.hasNext()){
            System.out.print(iterate.next());
            System.out.print(", ");
        }
    }
}


إزالة عناصر ArrayList

1. باستخدام طريقة remove

لإزالة عنصر من قائمة المصفوفات ، يمكننا استخدام طريقة remove. فمثلا،

الكود:
import java.util.ArrayList;

class Main {
    public static void main(String[] args) {
        ArrayList<String> animals = new ArrayList<>();

        // Add elements in the array list
        animals.add("Dog");
        animals.add("Cat");
        animals.add("Horse");
        System.out.println("Initial ArrayList: " + animals);

        // Remove element from index 2
        String str = animals.remove(2);
        System.out.println("Final ArrayList: " + animals);
        System. out.println("Removed Element: " + str);
    }
}


Output

Initial ArrayList: [Dog, Cat, Horse]
Final ArrayList: [Dog, Cat]
Removed Element: Horse

2. باستخدام طريقة removeAll ()

لإزالة جميع العناصر من قائمة المصفوفات ، نستخدم طريقة removeAll (). فمثلا،

الكود:
import java.util.ArrayList;

class Main {
    public static void main(String[] args) {
        ArrayList<String> animals = new ArrayList<>();

        // Add elements in the ArrayList
        animals.add("Dog");
        animals.add("Cat");
        animals.add("Horse");
        System.out.println("Initial ArrayList: " + animals);

        // Remove all the elements
        animals.removeAll(animals);
        System.out.println("Final ArrayList: " + animals);
    }
}


5_تهيئة ArrayList باستخدام asList


على عكس المصفوفات ، لا يمكننا تهيئة قوائم المصفوفات مباشرة. ومع ذلك ، يمكننا استخدام طريقة asList () لفئة المصفوفات لتحقيق نفس التأثير.

لاستخدام طريقة asList () ، يجب استيراد حزمة java.util.Arrays أولاً.

الكود:
import java.util.ArrayList;
import java.util.Arrays;

class Main {
    public static void main(String[] args) {
        // Creating an array list
        ArrayList<String> animals = new ArrayList<>(Arrays.asList("Cat", "Cow", "Dog"));
        System.out.println("ArrayList: " + animals);

        // Access elements of the array list
        String element = animals.get(1);
        System.out.println("Accessed Element: " + element);
    }
}
من طرف زهراء
في الأحد يوليو 05, 2020 12:28 pm
 
ابحث في: أساسيات اللغة Java Basics
موضوع: التعامل مع قوائم المصفوفات ArrayList
المساهمات: 1
مشاهدة: 39

إيجاد الرقم المفهرس لاحد عناصر المصفوفة index of an array element

توجد عدة طرق لايجاد الرقم المفهرس لاى عنصر من عناصر اى مصفوفة وذلك على النحو التالى :

1_باستخدام Binary search

توفر لنا الفئة #Arrays الطريقة #binarySearch  للعثور على فهرس عنصر أحد عناصر المصفوفة ويتم استخدامها على النحو التالى.

الكود:
 
// استيراد الفئة  Arrays
import java.util.Arrays;

public class index {

   // إنشاء وظيفة للبحث عن فرس عناصر المصفوفة
   public static int findIndex(int arr[], int t)
   {

      int index = Arrays.binarySearch(arr, t);
      return (index < 0) ? -1 : index;
   }
   // دالة التشغيل الرئسية
   public static void main(String[] args)
   {
      int[] my_array = { 1, 2, 3, 4, 5, 6, 7 };

      // ايجاد فهرس العنصر 5
      System.out.println("Index position of 5 is: "
                  + findIndex(my_array, 5));

      //  إيجاد فهرس العنصر 7
      System.out.println("Index position of 7 is: "
                  + findIndex(my_array, 7));
   }
}


الاخراج :

Index position of 5 is: 4
Index position of 7 is: 6


2_باستخدام Stream API:

#Stream هي طبقة تجريدية جديدة مقدمة في Java 8. من أجل العثور على فهرس عنصر مصفوفة ويتم استخدامها على النحو التالى :

الكود:

// استيراد الفئة IntStream
import java.util.stream.IntStream;
public class index {

   // إنشاء وظيفة للعثور على فهرس عنصر مصفوفة
   public static int findIndex(int arr[], int t)
   {
      int len = arr.length;
      return IntStream.range(0, len)
         .filter(i -> t == arr[i])
         .findFirst()  
         .orElse(-1);
   }
   public static void main(String[] args)
   {
      int[] my_array = { 5, 4, 6, 1, 3, 2, 7, 8, 9 };
      System.out.println("Index position of 5 is: "
                  + findIndex(my_array, 5));
      System.out.println("Index position of 7 is: "
                  + findIndex(my_array, 7));
   }
}




الاخراج :

Index position of 5 is: 0
Index position of 7 is: 6
من طرف زهراء
في الإثنين نوفمبر 25, 2019 4:19 pm
 
ابحث في: أساسيات اللغة Java Basics
موضوع: إيجاد الرقم المفهرس لاحد عناصر المصفوفة index of an array element
المساهمات: 0
مشاهدة: 172

المصفوفات فى الجافا Java Arrays

أهلا بكم

من خلال هذا المقال سنتناول بالشرح مفهوم المصفوفات فى الجافا #Java Array، المقال سوف يغطي المواضيع التالية:



  1. ما هي المصفوفات  Arrays؟

  2. طرق إنشاء مصفوفة 

  3. الوصول إلى عنصر محدد في المصفوفات

  4. المصفوفات متعددة الأبعاد 

  5. تمرير بيانات مصفوفة إلى طريقة Method




ما هي المصفوفات  Arrays؟

المصفوفات في #Java هي هياكل بيانات متجانسة يتم تنفيذها في #Java ككائنات.حيث تقوم #Arrays بتخزين قيمة واحدة أو أكثر من نوع بيانات محدد بطريقة مفهرسة و يتم الوصول إلى عنصر محدد في المصفوفة بواسطة الفهرس الخاص به. 

طرق إنشاء المصفوفات :

الصيغة العامة للإعلان عن المصفوفة على النحو التالى :

المصفوفة ذات البعد الواحد....والصيغة العامة للإعلان عن المصفوفة ذات البعد الواحد كالتالي:

الوسم arrays على المنتدى منتدى مصر التقني 781125485


أو يمكن الإعلان عنها بنفس الصيغة السابقة مع وضع الأقواس بعد اسم المصفوفة كالتالي:

الوسم arrays على المنتدى منتدى مصر التقني 756900150


اذن لكي يتم إنشاء مصفوفة يجب عليك الاتى :


  • تحديد نوع البيانات المراد تخزينها فى المصفوفة data type
  • قوس مربع []
  • وضع اسم للمصفوفة 


مثال : انشاء مصفوفة باسم A تحتوي على بيانات من نوع int 

الكود:
int [] A;


أو يمكنك تبديل موضع [] مع اسم المصفوفة على النحو التالى :

الكود:
int A [] ;


بهذا كما موضح هو إعلاه قنما بإنشاء المصفوفة A ولكن لا يمكن تخزين بيانات بها بعد، بمعنى أنه تم إنشاء اسم متغير يشير إلى #null (لا شيء) في الذاكرة لذلك يجب علينا تهئية تلك المصفوفة وذلك بتحديد حجمها ويتم ذلك بعده طرق :

باستخدام الكلمة الاساسية #new ، وتعيينه إلى نوع بيانات المصفوفة على النحو التالى :

الكود:

int [] A;
A[] = new int[5];


أو يمكن تهئية المصفوفة و تحديد حجمها في سطر واحد كالتالي:

الوسم arrays على المنتدى منتدى مصر التقني 129786133

الوصول إلى عنصر محدد في المصفوفات :


وكما هو ظاهر اعلاه كل المصفوفات عناصرها مرقمة من 0 إلى (حجم المصفوفة -1) ويسمى هذا الترقيم بال #index فهو بمثابة عنوان للعنصر وبه نستطيع الوصول إليه.

مثلا المصفوفة A التى تم إنشائها وتحديد حجمها 5 لتخزين خمس أرقام فسيكون ال #index  لها من 0 إلى 4، إذ أن العنصر الأول سيكون متواجد عند ال#index رقم 0 والعنصر الثاني عند ال#index رقم 1، وهكذا إلى نهاية المصفوفة....فمثلا لو أردنا وضع القيمة 10 في المخزن الاول للمصفوفة سنقوم بكتابة الشفرة على النحو التالى :

الكود:
;A[0]=10


مثال اكثر توضيحا :

إنشاء مصفوفة باسم #month_days حجمها يتسع لعدد 12 مخزن ليتم تخزين عدد الايام لكل شهر ميلادى ..ثم طباعة عدد ايام شهر ابريل على النحو التالى :

الكود:
public static void main(String args[]) {
   int month_days[];
    month_days = new int[12];
    month_days[0] = 31;
    month_days[1] = 28;
    month_days[2] = 31;
    month_days[3] = 30;
    month_days[4] = 31;
    month_days[5] = 30;
    month_days[6] = 31;
    month_days[8] = 30;
    month_days[9] = 31;
    month_days[10] = 30;
    month_days[11] = 31;
     System.out.println("April has " + month_days[3] + " days.");
     }
}


المخرجات :

April has 30 days

و على الرغم من ذلك يمكنك يمكن تهيئة المصفوفة و تحديد حجمها عندما يتم الإعلان عنها مباشرة بتمرير القيم او العناصر المراد تخزينها بها في مُهيئ المصفوفة .حيث سيتم إنشاء المصفوفة تلقائيًا بشكل يكفي لاحتواء عدد العناصر التي تحددها في مُهيئ الصفيف. على النحو التالى :

الوسم arrays على المنتدى منتدى مصر التقني 151613972

مثال :
الكود:
class MyArray{
 
public static voide main(String args[]){
 
int month_days[ ] = {31,28,31,30,31,30,31,30,31,30,31};
 
System.out.println("April has " + month+days[3] + "days.");
 
}
 
}



المخرجات :

April has 30 days


 المصفوفة متعددة الأبعاد (ذات البعدين) Multidimensional array

ويمكن القول بأن المصفوفة ذات البعدين هي عبارة عن جدول يحتوي على صفوف وأعمدة .والصيغة العامة لهذه المصفوفة كالتالي :


الوسم arrays على المنتدى منتدى مصر التقني 145876847

ويتعب نفس طريقة انشاء و تهيئة المصفوفة أحادية البعد

الوسم arrays على المنتدى منتدى مصر التقني 422583293

تمرير مصفوفة إلى طريقة

يمكننا أيضًا تمرير المصفوفات إلى الطرق كما يمكننا تمرير قيم النوع البدائي إلى الأساليب...على النحو التالى :

الكود:
public class PMethods{
public static void display(int y[])
     {
             System.out.println(y[0]);
             System.out.println(y[1]);
             System.out.println(y[2]);
 
     }
public static void main(String args[])
     {
     int x[] = { 1, 2, 3 };
     display(x);
     }
}
من طرف زهراء
في الإثنين يناير 21, 2019 8:47 pm
 
ابحث في: أساسيات اللغة Java Basics
موضوع: المصفوفات فى الجافا Java Arrays
المساهمات: 0
مشاهدة: 396

الرجوع الى أعلى الصفحة

انتقل الى: