JavaRush /Java блогы /Random-KK /Java Collections Framework ұсынған ArrayList, Vector және...
ramhead
Деңгей

Java Collections Framework ұсынған ArrayList, Vector және HashMap топтамаларын пайдалану жолы

Топта жарияланған
Бұл мақалада біз Collections Framework- тен ArrayList , Vector және HashMap үш маңызды жинақ кластары туралы білеміз және оларды өз codeымызда пайдалана бастаймыз. Коллекция және жинақ кластарын пайдалана отырып , біз элементтер тобын қарапайым нысандар ретінде сақтай аламыз және осы сыныптарда бар әртүрлі әдістерді қолдана отырып, оларды басқара аламыз. Сабақтар мен пакеттен қол жетімді . Басқа класс - бұл пакеттен қолжетімді жинақ , ол кілт-мән салыстыруларының жинағын сақтауға мүмкіндік береді. Бұл кілт белгілі болған кезде жинақтан қажетті мәнді алуға мүмкіндік береді. Осы жинақ кластарын қолданатын мысалдарды бір-бірлеп қарастырайық. Мысал 1. Бұл мысалда классты қолданып қарапайым бағдарламаны жазамыз - ArrayList топтамасының Listing 1. Орындау codeы, мысалы 1 Java Collections Framework ұсынған ArrayList, Vector және HashMap топтамаларын қалай пайдалануға болады - 1ArrayListVectorArrayListVectorjava.utiljava.utilHashMap
// подключаем класс
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біз тағы 2 элементті қосамыз, осылайша жиынның өлшемін 10-ға дейін көбейтеміз. Әдіс getCharacterPosition(args)элементтің (адамның аты) мәнін қабылдайды және позицияны көрсетеді. коллекциядағы осы элементтің ArrayList. Егер ішінде мұндай элемент болмаса ArrayList, онда -1 мәні көрсетіледі. Әдіс removeCharacter(args)аргумент ретінде сол элементтің индексін немесе элементтің өзін алып, көрсетілген элемент мәнін (адамның аты) жинақтан жояды. Жоғарыдағы codeта коллекциядан 2 элементті алып тастағандықтан, коллекциямыздың өлшемі 10 емес, 8-ге айналғанын байқаймыз. Егер массив пен жинақтың өлшемдері бірдей болса, әдіс келесі жолдарды қайтарады:
The element Harry cannot be removed
The element Dumbledore cannot be removed
Әдістің орындалуы removeCharacter(args)тек жиынның өлшемі массив өлшемінен үлкен болуы керек екендігімен ғана шартталған. Мысал 2. Бұл мысалда классты қолданып қарапайым бағдарламаны жазамыз - топтама Vector Listing 2. Орындау codeы, мысалы 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Жоғарыда келтірілген code жинақтар мен коллекциялар арасында үлкен айырмашылық жоқ екенін дәлелдейтін шағын үлгі ғана Vector. Коллекцияны Vectorколлекция сияқты ArrayList, сол әдістерді пайдалана отырып өңдеуге болады. Мысал 3. Бұл мысалда біз HashMap Listing 3 топтама класын пайдаланып қарапайым бағдарлама жазамыз. 3-мысалдың орындау codeы
// подключаем класс
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
Жоғарыдағы codeты біртіндеп қарастырайық. Бұл мысал бағдарламада элементтері әйгілі кітаптардың атаулары болып табылатын жолдар массиві бар. Бұл әдіс mapAuthors()авторларымен бірге кітап атауларының көрінісін жасайды. Мұнда кілттер - кітаптардың атаулары, ал құндылықтар - бұл кітаптардың авторлары. Әдіс шақырылғанда getBookList(), ол массив арқылы қайталанады Booksжәне кітап атауларын бір-бірден алады. Әрі қарай әдіс кез келген кітаптың өз авторы бар-жоғын тексереді. Көріп отырғанымыздай, әдіс кітаптың авторын таба алмаса, хабарлама көрсетіледі not available. Әйтпесе, автор мен оның кітабы бірінен соң бірі көрсетіледі. Қорытынды: Бұл мақалада біз сыныптар - жинақтар туралы аздап зерттедік ArrayListжәне Vectorоларды HashMapөз codeымызда қолдануға тырыстық. Түпнұсқа мақала: Java Collections Framework ұсынған ArrayList, Vector және HashMap сыныптарын пайдалану жолы
Пікірлер
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION