русс | укр

Мови програмуванняВідео уроки php mysqlПаскальСіАсемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование


Linux Unix Алгоритмічні мови Архітектура мікроконтролерів Введення в розробку розподілених інформаційних систем Дискретна математика Інформаційне обслуговування користувачів Інформація та моделювання в управлінні виробництвом Комп'ютерна графіка Лекції


Тема 7 Контейнери, колекції. Робота з датою та часом. Пакет java.util


Дата додавання: 2014-05-29; переглядів: 1132.


План

1 Клас Date

2 Класи Calendar і GregorianCalendar

3 Колекції

4 Інтерфейс Collection

5 Конкретні класи колекцій

 

1 Клас Date

Клас Date споконвічно надавав набір функцій для роботи з датою - для одержання поточного року, місяця й т.д. Однак зараз всі перераховані методи не рекомендовані до використання й практично всю функціональність для цього надає клас Calendar.

Існує кілька конструкторів класу Date, однак рекомендовано до використання два:

 

Date() і Date(long date)

 

Другий конструктор приймає як параметр значення типу long, що вказує на кількість мілісекунд, що пройшли з 1 січня 1970 р., 00:00:00 за Гринвічем. Перший конструктор створює екземпляр, що відповідає сучасному моменту. Фактично це еквівалентно другому варіанту new Date(System.currentTimeMillis()). Можна вже після створення екземпляра класу Date використовувати метод setTime(long time) для того, щоб задати потрібний час.

Для порівняння дат служать методи after(Date date) і before(Date date), які повертають логічне значення, залежно від того, виконанаумова або ні. Метод compareTo(Date anotherDate) повертає значення типу int, що дорівнює -1, якщо дата менше порівнюваної, 1 - якщо більше й 0 - якщо дати рівні. Метод toString() повертає строковий опис дати. Однак для більш зрозумілого й зручного перетворення дати в тексті рекомендується користуватися класом SimpleDateFormat, визначеним у пакеті java.text.

 

2 Класи Calendar і GregorianCalendar

Більш розвинені засоби для роботи з датами представляє клас Calendar. Calendar є абстрактним класом. Для різних платформ реалізуються конкретні підкласи календаря. На даний момент існує реалізація Григоріанського календаря - GregorianCalendar. Екземпляр цього класу виходить шляхом виклику статичного методу getInstance(), що повертає екземпляр класу GregorianCalendar. Підкласи класу Calendar повинні інтерпретувати об'єкт Date по-різному. У майбутньому передбачається реалізувати також місячний календар, використовуваний у деяких країнах.

Calendar забезпечує набір методів, що дозволяють маніпулювати різними «частинами» дати, тобто одержувати й установлювати дні, місяці, тижні й т.д.

Якщо при завданні параметрів календаря деякі параметри упущені, то для них будуть використані значення за замовчуванням для початку відліку, тобто YEAR = 1970, MONTH = JANUARY, DATE = 1 і т.д.

Для зчитування й установки різних «частин» дати використовуються методи get(int field), set(int field, int value), add(int field, int amount), roll(int field, int amount), змінна типу int з ім'ям field указує на номер поля, з яким потрібно зробити операцію. Для зручності всі ці поля визначені в Calendar як статичні константи типу int.

 

3 Колекції

Найчастіше в програмі робота йде не з одним об'єктом, а із цілою групою більш-менш однотипних екземплярів. Найпростіше зробити це за допомогою масивів. Однак, незважаючи на те, що це досить ефективне рішення для багатьох випадків, воно має деякі обмеження. Так, звертатися до елемента масиву можна тільки по його номеру (індексу). Також необхідно заздалегідь задати довжину масиву й більше її не змінювати.

Існує кілька різних типів класів-колекцій. Всі вони розроблялися, по можливості, відповідно до єдиної логіки й певних інтерфейсів і там, де це можливо, робота з ними уніфікована. Однак всі колекції відрізняються внутрішніми механізмами зберігання, швидкістю доступу до елементів, споживаною пам'яттю й іншими деталями. Наприклад, у деяких колекціях об'єкти (також називані елементами колекцій), можуть бути впорядковані, у деяких - ні. У деяких типах колекцій допускається дублювання посилань на об'єкт, у деяких - ні. Далі ми розглянемо кожний із класів-колекцій.

Класи, що забезпечують маніпулювання колекціями об'єктів, оголошені в пакеті java.util.

 


<== попередня лекція | наступна лекція ==>
Створення користувальницьких класів виключень | Інтерфейс Collection


Онлайн система числення Калькулятор онлайн звичайний Науковий калькулятор онлайн