Java. Урок 32. Ассоциативные массивы 5.5

Когда я создавал этот класс, я написал только три поля, все остальное автоматически генерировала среда intellij idea, что полностью оправдывает ее название. Напоминаю, для того, чтобы пользоваться автоматической генерацией кода нажмите одновременно alt+insert, а затем выберите объект, который хотите генерировать, кроме стандартных get и set, а также конструктора, я добавил equals,hashCode и toString. Эта процедура может понадобиться для того, чтобы использовать hashTable, дело в том, что для генерации хеша, данный класс использует вызов стандартной функции hashCode, которая по умолчанию для пользовательских объектов (унаследованных от класса object) возвращает адрес, т.е возникает такая же ситуация, как и со строками, если их сравнивать через ==. Напишем класс Test, в котором просто создадим ассоциативный массив, и попробуем добавить туда некоторое количество элементов, а затем будем пытаться получать студентов по их имени:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
package ru.cybern;

import java.util.Hashtable;
import java.util.Map;

public class Test {
    public void test()
    {
        Map<String, Student> map = new Hashtable<String, Student>();
        Student st = new Student(0,"Alex"18);
        map.put("Alex", st);//добавляю студента Alex по ключу Alex
        System.out.println(map.get("Alex"));//работает
        System.out.println(map.get("Al" + "ex"));  //работает
        System.out.println(map.get(st.getName()));//работает
        String s = "a";//пытаюсь обмануть компилятор
        s = s.toUpperCase()+"lex";
        System.out.println(map.get(s)); //работает
    }
}

Категория: Java | Добавил: ghost_mod (29.09.2016)
Просмотров: 312 | Рейтинг: 0.0/0
Всего комментариев: 0
Имя *:
Email:
Подписка:1
Код *: