понеділок, 16 листопада 2015 р.

Java Collections: Map


     Map є частиною Java Collections Framework (docs.oracle.com). 
  • Map зберігає як ключі, так і приєднані до них дані, на відміну від Set, який зберігає тільки дані;
  •  не містить дублікати ключів;  
  • ключ може вказувати тільки на один єдиний відподний йому набір даних (набір даних -> клас);
  • залежно від імплементації, Map може або не може містити null;
  • Map - це інтерфейс, конкретні його реалізації  в Java SDK: HashMap, TreeMap, LinkedHashMap, а також інші;
  • Інтерефйс містить декілька методів, які не є обовязковими для імплементування (optional operation);
  • методи доступу до даних:

    Value get(Object ключ)
    • повертає дані, на які вказує цей ключ;
    • АБО null якщо Map не містить даного ключа;
    • АЛЕ, увага, якщо імплементація дозволяє nulls, то результат null ще не значить, що ключа немає в Map. В такому випадку перевірити наявність ключа можна методом containsKey ;
    Value put(Key ключ, Value дані)
    • якщо раніше цього ключа не було в Map - зберігає ключ та дані в Map і повертає null;
    • якщо ключ вже знаходиться в Map - знищує старі дані і записує нові, повертаючи значення старих даних;
    • АЛЕ, увага, якщо імплементація дозволяє nulls, то результат null ще не значить, що ключа не існувало в Map. Це може також значити, що ключ існував і його дані мали значення null.
    Value remove(Object ключ)
    • якщо ключ вже знаходиться в Map - знищує значення ключа та відповідні йому дані, повертаючи значення даних;
    • якщо цього ключа не було в Map - нічого не виконує і повертає null;
    • АЛЕ, увага, якщо імплементація дозволяє nulls, то результат null ще не значить, що ключа не існувало в Map. Це може також значити, що ключ існував і його дані мали значення null.

неділя, 15 листопада 2015 р.

Java Podcasts

     Про Java можна не тільки читати, але і слухати. Заодно і рівень англійської мови покращиться. Тут можна знайти підбірку декількох подкастів -  player.fm.

     Наразі мені сподобався ось цей - Java Pub House.








четвер, 12 листопада 2015 р.

Eclipse: The declared package does not match the expected package

     В моєму випадку я трохи реорганізував структуру директорій проекту, тому дерево пакетів із кодом не відповідало фізичній структурі каталогів проекту, і відповідно старі пакети вже не знаходилися в Java build class path.  Вихід - потрібно перепризначити Java build class path.