Робота з HashMap в Processing

HashMap схожі на масиви, але для доступу до елементів використовують інші методи Масиви використовують цілі числа в якості індексу, в той час як HashMap використовують String HashMap зручні, коли вам потрібно знайти певний елемент у величезному комплексі даних

Як це робиться

Почнемо з оголошення обєкта класу HashMap і додавання до нього значень у функції

setup()

HashMap&ltString, Float&gt hm

void setup()

{

hm = new HashMap&ltString, Float&gt() hmput(&quotProcessing&quot, 5130)

hmput(&quotopenFrameworks&quot, 3045)

hmput(&quotCinder&quot, 1278)

noLoop()

}

Перше, що ми зробимо у функції draw () так це переберемо обєкт класу HashMap за допомогою ітератора і виведемо кожен елемент на консоль

Iterator i = hmentrySet()iterator() while ( ihasNext () ) {

MapEntry me = (MapEntry)inext()

println( &quotKey: &quot + megetKey() + &quot, Value: &quot + megetValue() )

}

println(&quot—&quot)

Якщо потрібно перевірити, не порожній чи обєкт HashMap, зробіть це методом

isEmpty () Отримати доступ до елементу HashMap можна методом get ()

println( &quotIs Empty &quot + hmisEmpty() )

println( &quotGet Processing: &quot + hmget(&quotProcessing&quot) )

Для отримання кількості елементів у HashMap використовуйте метод size () Він працює так само, як в ArrayList Видалити елементи в HashMap можна за допомогою методу remove ()

println( &quotNumber of Elements (before remove): &quot + hmsize() ) println( &quotRemoved: &quot + hmremove(&quotopenFrameworks&quot) ) println( &quotNumber of Elements (after remove): &quot + hmsize() )

Останнє, що ми зробимо – пошукаємо в HashMap пункт з ключовою фразою за допомогою методу containsKey ()

println( &quotContains key openFrameworks: &quot + hmcontainsKey(&quotopenFram eworks&quot) )

Коли ви запустите приклад, ви побачите на консолі такі дані:

Key: Cinder, Value: 1278 Key: Processing, Value: 513

Key: openFrameworks, Value: 3045

Is Empty false

Get Processing: 513

Number of Elements (before remove): 3 Removed: 3045

Number of Elements (after remove): 2 Contains key openFrameworks: false

Як це працює

Сналача ми оголосили обєкт класу HashMap і ініціалізували його за допомогою конструктора класу Доброю ідеєю буде додати тип даних, які ви будете там зберігати Зверніть увагу, що в HashMap ви можете зберігати тільки обєкти і рядки Він не працює для змінних типу float або int Для зберігання цілих або дійсних чисел в HashMap можна використовувати класи Integer або Float з Java Клас Integer включає в обєкт змінні типу int клас Float робить те ж саме для змінних float

Hashmap&ltString, Float&gt hm

hm = new HashMap&ltString, Float&gt()

Додати елементи можна за допомогою методу put () Перший параметр це ключ, і преочтітельно повинен бути String, щоб ви могли з легкістю знайти його Другий параметр – це будь-який обєкт У нашому прикладі ми використовували обєкти типу Float Для видалення обєкта можна скористатися методом remove () Єдиний параметр, який вам потрібен для цього методу це ключ розділу, який ви хочете видалити

Для перевірки HashMap на наявність елементів використовуйте метод isEmpty () Цей метод повертає true якщо HashMap порожній і false якщо він містить розділи Якщо потрібно перевірити, чи містить HashMap розділ з певним ключем, скористайтеся модом containsKey () Параметр цієї функції це, власне, ключ, який ви шукаєте Цей метод теж возвражает логічну змінну

Перебрати всі обєкти в HashMap можна за допомогою ітератора Це аналогічно роботі з ArrayList Ітератор викликається так: hmentrySet () Iterator () Отримати доступ до певного розділу за допомогою циклу while можна так: MapEntry me = (Map

Entry) itrnext () Для отримання доступу до ключа або величині з певного розділу, застосуйте методи getKey () і getValue ()

Джерело: Ян Вантомм, Processing 2: креативне програмування, переклад з англійської Олександри Мішутіної, Published by Packt Publishing Ltd, 2012, BIRMINGHAM – MUMBAI

Схожі статті:


Сподобалася стаття? Ви можете залишити відгук або підписатися на RSS , щоб автоматично отримувати інформацію про нові статтях.

Коментарів поки що немає.

Ваш отзыв

Поділ на параграфи відбувається автоматично, адреса електронної пошти ніколи не буде опублікований, допустимий HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

*

*