JavaRush /Java блогу /Random-KY /Java Collections Framework тарабынан берилген ArrayList, ...
ramhead
Деңгээл

Java Collections Framework тарабынан берилген ArrayList, Vector жана HashMap чогултуу класстарын кантип колдонуу керек

Группада жарыяланган
Бул макалада биз Collections Framework'тен ArrayList , Vector жана HashMap үч маанилүү коллекция класстары жөнүндө билебиз жана аларды өзүбүздүн codeубузда колдоно баштайбыз. Коллекция жана чогултуу класстарын колдонуу менен биз элементтердин тобун жөнөкөй an objectтер катары сактап, бул класстарда бар ар кандай ыкмаларды колдонуу менен аларды башкара алабыз. Класстар жана пакеттен жеткorктүү . Дагы бир класс - бул топтомдон жеткorктүү болгон коллекция , бул ачкыч-маанилердин карталарын сактоого мүмкүндүк берет. Бул ачкыч белгилүү болгондо коллекциядан керектүү маанини алууга мүмкүндүк берет. Келгиле, бул чогултуу класстарын колдонуу менен мисалдарды карап көрөлү. Мисал 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
Жогорудагы code кичинекей гана үлгү болуп саналат, ал коллекциялар ArrayListменен Vector. Коллекцияны Vectorчогултуу сыяктуу эле ArrayList, ошол эле ыкмаларды колдонуу менен башкарса болот. Мисал 3. Бул мисалда биз Listing 3 чогултуу классын колдонуу менен жөнөкөй программаны жазабыз. HashMap 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