JavaRush /مدونة جافا /Random-AR /كيفية استخدام فئات مجموعة ArrayList وVector وHashMap التي...
ramhead
مستوى

كيفية استخدام فئات مجموعة ArrayList وVector وHashMap التي يوفرها Java Collections Framework

نشرت في المجموعة
في هذه المقالة، سنتعرف على ثلاث فئات مهمة للمجموعات ArrayList و Vector و HashMap من Collections Framework ونبدأ في استخدامها في الكود الخاص بنا. كيفية استخدام فئات مجموعة ArrayList وVector وHashMap التي يوفرها Java Collections Framework - 1باستخدام فئتي التجميع ArrayListوالجمع Vector، يمكننا تخزين مجموعة من العناصر ككائنات بسيطة ومعالجتها باستخدام طرق مختلفة متوفرة في هذه الفئات. الطبقات ArrayListومتاحة Vectorمن الحزمة java.util. فئة أخرى هي مجموعة، متاحة من الحزمة java.util، هذه HashMap، والتي تسمح لك بتخزين مجموعة من تعيينات القيمة الرئيسية. وهذا يجعل من الممكن الحصول على القيمة المطلوبة من المجموعة عندما يكون المفتاح معروفًا. دعونا نلقي نظرة على الأمثلة باستخدام فئات التجميع هذه واحدة تلو الأخرى. مثال 1. في هذا المثال، سنكتب برنامجًا بسيطًا باستخدام فئة - قائمة مجموعة ArrayList 1. رمز التنفيذ على سبيل المثال 1
// подключаем класс
import java.util.ArrayList;
public class ArrayListExample {
  static String[] favouriteCharacters = {"Harry", "Ron", "Hermione",  "Snape", "Dumbledore", "Moody", "Riddle", "Fred"};
   int i;
   public ArrayList favouritelist = new ArrayList();
// метод добавляет элементы ‘favouriteCharacters’ в ‘favouritelist’
 private void includeCharacters(String[]favouriteCharacters)
       {
        for (i = 0; i < favouriteCharacters.length; i++) {
            // добавление элементов по одному из массива ‘favouriteCharacters’
            favouritelist.add(favouriteCharacters[i]);
            printCharacters(i);
        }
// добавление элементов, посредством указания позиций
        favouritelist.add(1, "george");
        favouritelist.add(4, "Peter");
    }
// метод выводит элемент ‘favouritelist’ по указанной позиции
    private void printCharacters(int i) {
        System.out.println("Character " + (i + 1) + ":" + favouritelist.get(i));
    }
// метод выводит все элементы ‘favouritelist’
    private void printCharacters() {
        System.out.println("\n");
        for(int i=0;i<favouritelist.size();i++){
        System.out.println("Character" + (i + 1) + ":" + favouritelist.get(i));
    }    }
// метод возвращает размер коллекции ‘favouritelist’
    private int sizeofCharactersList() {
        System.out.println("\n");
        System.out.println("Total No of Characters in Array:" + favouriteCharacters.length);
        System.out.println("Total No of Characters in List:" + favouritelist.size());
        return favouritelist.size();
    }
// метод выводит позицию element ‘favouritelist’ по указанному имени
 public void getCharacterPostion(String characterName) {
     System.out.println("\n");
        System.out.println("The position of the character\t" + characterName + "\tis\t" + favouritelist.indexOf(characterName));
    }
// метод удаляет элемент ‘favouritelist’ по указанному имени
    public void removeCharacter(String characterName) {
        if(favouritelist.size()>favouriteCharacters.length){
        favouritelist.remove(characterName);
        }
        else{
             System.out.println("\n");
             System.out.println("The element\t"+favouritelist.get(favouritelist.indexOf(characterName))+"\tcannot be removed");
        }
        }
// метод удаляет элемент ‘favouritelist’ по указанной позиции
    public void removeCharacter(int i) {
        if(favouritelist.size()>favouriteCharacters.length){
        favouritelist.remove(i);
          }
        else{
            System.out.println("The element\t"+favouritelist.get(i)+"\tcannot be removed");
        }
    }
    public static void main(String args[]) {
        ArrayListExample example = new ArrayListExample();
        example.includeCharacters(favouriteCharacters);
        example.printCharacters();
        int size = example.sizeofCharactersList();
        example.getCharacterPostion("Ron");
        example.removeCharacter("Snape");
        example.removeCharacter(2);
        example.sizeofCharactersList();
        example.removeCharacter("Harry");
         example.removeCharacter(4);
    }
}
سيؤدي تشغيل هذا البرنامج إلى إنتاج المخرجات التالية:
Character 1:Harry
Character 2:Ron
Character 3:Hermione
Character 4:Snape
Character 5:Dumbledore
Character 6:Moody
Character 7:Riddle
Character 8:Fred


Character1:Harry
Character2:george
Character3:Ron
Character4:Hermione
Character5:Peter
Character6:Snape
Character7:Dumbledore
Character8:Moody
Character9:Riddle
Character10:Fred


Total No of Characters in Array:8
Total No of Characters in List:10


The position of the character	Ron	is	2


Total No of Characters in Array:8
Total No of Characters in List:8


The element	Harry	cannot be removed
The element	Dumbledore	cannot be removed
دعونا نلقي نظرة على مثال البرنامج المقدم، خطوة بخطوة. في هذا المثال، في السطر الأول من البرنامج، قمنا باستيراد مجموعة الفئات ArrayList. بعد ذلك، نتناوب في تهيئة مجموعة من السلاسل favouriteCharactersالتي تحتوي على أسماء الأشخاص favouritelistومثيل للمجموعة ArrayList. يمكن تقسيم الطريقة includeCharacters(args)إلى قسمين. في الجزء الأول من الطريقة، تتم إضافة العناصر من المصفوفة إلى المجموعة باستخدام حلقة. في هذه الحالة، تتم إضافة العناصر ArrayListإلى نفس الترتيب الذي توجد به في المصفوفة. يحدث هذا لأننا لا نحدد أي مواضع للعناصر التي تمت إضافتها إلى المجموعة. لكن في الجزء الثاني من طريقتنا، تتم إضافة العناصر باستخدام الفهرسة. في هذه الحالة، تتم إضافة العناصر إلى المجموعة في الموضع المحدد بالضبط. عند إضافة عنصر جديد إلى منتصف المجموعة ArrayList، يتم نقل العناصر الموجودة بالفعل في تلك المجموعة والتي تقع خارج موضع الإدراج المحدد للعنصر الجديد إلى مواضع لاحقة من مواضعها، وبالتالي زيادة حجم المجموعة. عندما ننظر إلى الناتج أولاً سنرى:
Total No of Characters in List: 10
Total No of Characters in Array: 8
وذلك لأنه بالإضافة إلى أن المصفوفة تحتوي على 8 عناصر، والتي تمت إضافتها إلى ArrayList، فإننا نضيف بشكل صريح عنصرين آخرين، وبالتالي زيادة حجم المجموعة إلى 10. getCharacterPosition(args)تأخذ الطريقة قيمة العنصر (اسم الشخص) وتعرض الموضع لهذا العنصر في المجموعة ArrayList. إذا لم يكن هناك مثل هذا العنصر في ArrayList، فسيتم عرض القيمة -1. تقوم الطريقة removeCharacter(args)بإزالة قيمة العنصر المحدد (اسم الشخص) من المجموعة، مع أخذ فهرس ذلك العنصر أو العنصر نفسه كوسيطة. في الكود أعلاه، يمكننا أن نلاحظ أن حجم مجموعتنا أصبح 8 بدلاً من 10 نظرًا لأننا قمنا بإزالة عنصرين من المجموعة. إذا كانت أحجام المصفوفة والمجموعة هي نفسها، فإن الطريقة ترجع الأسطر التالية:
The element Harry cannot be removed
The element Dumbledore cannot be removed
تنفيذ الطريقة removeCharacter(args)مشروط فقط بحقيقة أن حجم المجموعة يجب أن يكون أكبر من حجم المصفوفة. مثال 2. في هذا المثال سنكتب برنامج بسيط باستخدام فئة - قائمة مجموعة Vector 2. رمز التنفيذ على سبيل المثال 2
// подключаем класс
import java.util.Vector;
public class VectorExample {
    Vector vector=new Vector();
    public void addCharacterandPrint(){
        vector.add("Weasley");
        vector.add("Potter");
        for(int i=0;i<vector.size();i++){
        System.out.println("The characters are\t"+vector.get(i));
        }
    }
    public static void main(String args[]){
        VectorExample example=new VectorExample();
        example.addCharacterandPrint();
        }
}
سيؤدي تشغيل هذا البرنامج إلى إنتاج المخرجات التالية:
The characters are Weasley
The characters are Potter
الكود أعلاه هو مجرد عينة صغيرة، مقدمة كدليل على أنه لا يوجد فرق كبير بين المجموعات ArrayListو Vector. يمكن التعامل مع المجموعة Vectorبنفس طريقة المجموعة ArrayList، باستخدام نفس الأساليب. مثال 3. في هذا المثال، سنكتب برنامجًا بسيطًا باستخدام HashMap قائمة فئة التجميع 3. كود التنفيذ للمثال 3
// подключаем класс
import java.util.HashMap;
public class HashMapExample {
    HashMap hashMap=new HashMap();
    String Books[]={"Famous Five","Goosebumps","Robinson Crusueo","Nancy Drew","The Cell","The Davinci Code","Harry Potter"};
    public void mapAuthors(){
        hashMap.put("Famous Five","Enid Blyton");
        hashMap.put("Goosebumps","R.L.Stine");
        hashMap.put("Nancy Drew","Carolyn Keene");
        hashMap.put("The Cell","Christopher Pike");
        hashMap.put("The Davinci Code","Dan Brown");
        hashMap.put("Harry Potter","J.K. Rowling");
    }
    public void getBookList(){
        for(int i=0;i<Books.length;i++){
            if(hashMap.containsKey(Books[i])){
                System.out.println("Author"+(i+1)+":\t"+hashMap.get(Books[i])+"\t"+Books[i]);
            }
            else{
                System.out.println("\nThe Imformation about the author of the book\t"+Books[i]+"\tis not available\n");
            }
        }
    }
    public static void main(String args[]){
        HashMapExample hashMapExample=new HashMapExample();
        hashMapExample.mapAuthors();
        hashMapExample.getBookList();
    }
}
سيؤدي تشغيل هذا البرنامج إلى إنتاج المخرجات التالية:
Author1: Enid Blyton Famous Five
Author2: R.L.Stine Goosebumps
The Information about the author of the book Robinson Crusueo is not available
Author4: Carolyn Keene Nancy Drew
Author5: Christopher Pike The Cell
Author6: Dan Brown The Davinci Code
Author7: J.K. Rowling Harry Potter
دعونا نلقي نظرة على الكود أعلاه، خطوة بخطوة. في هذا البرنامج النموذجي، لدينا مجموعة من السلاسل التي عناصرها هي أسماء الكتب الشهيرة. تقوم الطريقة mapAuthors()بإنشاء عرض لعناوين الكتب مع مؤلفيها. والمفاتيح هنا هي عناوين الكتب، والقيم هي مؤلفو تلك الكتب. عندما يتم استدعاء الطريقة getBookList()، فإنها تتكرر عبر المصفوفة Booksوتحصل على عناوين الكتب واحدًا تلو الآخر. بعد ذلك، تتحقق الطريقة مما إذا كان أي كتاب له مؤلفه الخاص. كما نرى، إذا لم تتمكن الطريقة من العثور على مؤلف الكتاب، فسيتم عرض الرسالة not available. وإلا فسيتم عرض المؤلف وكتابه واحدًا تلو الآخر. الخلاصة: في هذه المقالة، درسنا قليلاً عن الفئات - المجموعات ، ArrayListوحاولنا استخدامها في الكود الخاص بنا. المقال الأصلي: كيفية استخدام فئات ArrayList وVector وHashMap التي يوفرها Java Collections FrameworkVectorHashMap
تعليقات
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION