JavaRush /בלוג Java /Random-HE /כיצד להשתמש במחלקות אוסף ArrayList, Vector ו- HashMap הני...
ramhead
רָמָה

כיצד להשתמש במחלקות אוסף ArrayList, Vector ו- HashMap הניתנות על ידי מסגרת Java Collections

פורסם בקבוצה
במאמר זה, נלמד על שלוש מחלקות אוסף חשובות ArrayList , Vector ו- HashMap מ- Collects Framework ונתחיל להשתמש בהם בקוד שלנו. כיצד להשתמש במחלקות אוסף ArrayList, Vector ו- HashMap הניתנות על ידי מסגרת Java Collections - 1באמצעות מחלקות האיסוף ArrayListוהאוסף Vector, אנו יכולים לאחסן קבוצת אלמנטים כאובייקטים פשוטים ולתפעל אותם באמצעות שיטות שונות הזמינות במחלקות אלו. שיעורים ArrayListוזמינים Vectorמהחבילה java.util. מחלקה נוספת היא אוסף, זמין מהחבילה java.util, זו HashMap, המאפשרת לך לאחסן אוסף של מיפויי מפתח-ערך. זה מאפשר לקבל את הערך הרצוי מאוסף כאשר המפתח ידוע. הבה נסתכל על דוגמאות באמצעות מחלקות אוסף אלה אחת אחת. דוגמה 1. בדוגמה זו, נכתוב תוכנית פשוטה באמצעות מחלקה - אוסף ArrayList Listing 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
בואו נסתכל על התוכנית לדוגמה שסופקה, צעד אחר צעד. בדוגמה זו, בשורה הראשונה של התוכנית, אנו מייבאים את ה-class-collection ArrayList. לאחר מכן, אנו מתחלפים באתחול מערך של מחרוזות favouriteCharactersהמכילות את שמות האנשים ומופע favouritelistשל האוסף ArrayList. ניתן לחלק את השיטה includeCharacters(args)לשני חלקים. בחלק הראשון של השיטה מוסיפים אלמנטים מהמערך לאוסף באמצעות לולאה. במקרה זה, הוספת אלמנטים אל ArrayListמתבצעת באותו סדר שבו הם ממוקמים במערך. זה קורה כי אנחנו לא מגדירים מיקומים עבור האלמנטים שמתווספים לאוסף. אבל בחלק השני של השיטה שלנו, אלמנטים מתווספים באמצעות אינדקס. במקרה זה, אלמנטים מתווספים לאוסף במיקום המדויק שצוין. כאשר אלמנט חדש מתווסף לאמצע אוסף ArrayList, אלמנטים שכבר קיימים באותו אוסף הממוקמים מעבר למיקום ההכנסה המצוין של הרכיב החדש, מוזזים למיקומים הבאים משלהם, ובכך מגדילים את גודל האוסף. כאשר נסתכל תחילה על הפלט, נראה:
Total No of Characters in List: 10
Total No of Characters in Array: 8
הסיבה לכך היא שבנוסף למערך שיש בו 8 אלמנטים, שמתווספים ל- ArrayList, אנו מוסיפים במפורש עוד 2 אלמנטים ובכך מגדילים את גודל האוסף ל-10. השיטה לוקחת את getCharacterPosition(args)הערך של אלמנט (שם האדם) ומציגה את המיקום של אלמנט זה באוסף ArrayList. אם אין אלמנט כזה ב- ArrayList, אז הערך -1 מוצג. השיטה removeCharacter(args)מסירה את ערך האלמנט שצוין (שם האדם) מהאוסף, לוקחת כארגומנט או את האינדקס של אותו אלמנט או את האלמנט עצמו. בקוד לעיל, אנו יכולים לשים לב שגודל האוסף שלנו הפך ל-8 במקום 10 בגלל העובדה שהסרנו 2 אלמנטים מהאוסף. אם הגדלים של המערך והאוסף זהים, השיטה מחזירה את השורות הבאות:
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 Listing 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, Vector, HashMapוניסינו להשתמש בהם בקוד שלנו. מאמר מקורי: כיצד להשתמש בשיעורי ArrayList, Vector ו-HashMap המסופקים על ידי Java Collections Framework
הערות
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION