GrabDuck

Java. ������� ��� ���������� ������������ �������. ������� 4.

:

������������� �������

������� �������������� �������

������������� ������ � ��� ����� ��� ���������. ������ ���� �������� ���� � ��������, ������ ����� �� �����������. � ����� ������ ����� �������� �������-��������, ��������������� (����������� � ����) � �������� ������. ������������� ������ ����� �������� �������� ��� ������������.

� ���� �������������� ������� ������ �������, ��������, ������, ���������� �� ���� ������. ������ ����� �������� �������, � ��������� � �������� ����� ������� ��� ���������� ������.

����� ������������ ������������� ������ ��� ������������� �������� �������, � ������� ������� ����� ���� �� ������ ������ �������, � ������������� ���������.

��������� Map

��������� Map �������� ������ ��� ������ � ������������� ��������:

size() � ���������� ���������� ��������� (���) � �������;

containsKey(Object key) � ���������, ���������� �� � ������� ������� � ������ key;

containsValue(Object value) � ���������, ���������� �� � ������� ������� �� ��������� value;

get(Object key) � ���������� ��������, ��������������� ����� key;

put(Object key, Object value) � ��������� � ������ ������� � ������ key � ��������� value. ���� ������� � ����� ������ ��� ���������� � �������, �� ��� �������� ������ ����������;

values() � ���������� �������� ���� ��������� ������� � ���� ��������� (�.�. ������������ ��������� ����� ��� Collection);

remove(Object key) � ������� ������� � ������ key, ��������� �������� ����� �������� (���� �� ����) � null, ���� ������ �������� �� ����;

�� ��������� �������������� ������� Map (��������� Map.Entry)

clear() � ������� ������;

isEmpty() � ���������, �� ���� �� ������.

������ ������� �������������� �������, ������������ ����������� Map, ����� ������������ ��� Map.Entry, ������� ������������� ��� �������� ������:

getKey() � ���������� ���� ��������;

getValue() � ���������� �������� ��������;

setValue(Object value) � ������ �������� ��������.

����� entrySet(), ������������ � ���������� Map, �������� �������� ��� �������� �������������� ������� � ���� ��������� �������� ���� Map.Entry.

����� Hashtable

����� Hashtable � ���� �� ���������� ���������� Map. *

� ���������� ����������� � ��������������� ������ Hashtable

Hashtable, ��� � Vector, ����� ������� ����� ������� (������ ������, ����������� ��� �������� �������). ������ ����� �� ��������������� ����������� ������������� � ����� ������, ����� ���������� ������� ������� ������������� �������������. ����������� Hashtable() ��� ���������� ������� ������ ������ � �������� � 101 ������� � ����������� ������������� 0.75. ����� ������ ��������� ������� � ���������� �������������, ������� ��������������� ������������� � ����� ����������� Hashtable(int capacity, float loadFactor).

Hashtable ����� ���������� � ����� Properties, ������� ������ ��� ������������ �������� ������ ���� �����. ���� � ���������� ������ � ����� � �������� ��������� �������������� ������� ������ ����� ��� String (� ��� ������ �������� �����), ������� ��������������� ������� Properties � �� ���� ����� ������ ���������� ���������� �����.

� ������ Properties ���������� ������ getProperty(String key)setProperty(String key, String value), ���������� ���������� ������� get()put(), �� ����������� ��������� ���� String.

�� ������������� ������������� �������� (��������� SortedSet)

��������� SortedMap

SortedMap � ��������� ���������� Map, ��������� ������������� ������, �������� �������� ����������� �� ������. ������, ��������������� ���� �����������: firstKey(), lastKey(), subMap(Object fromKey, Object toKey), headMap(Object toKey), tailMap(Object fromKey) ���������� ������� ���������� SortedSet. ������ ��������� �����������, ��������, � ������ TreeMap. ���� �� ������������� ����� ������ ��������� ������ ���� Comparator, ����������� �������� ����� ������ ���� ����������� ������� ����������.

������ ������ � �������������� ���������

����� ����������� ����� findUser(String login, String password), ��������� � ���� ������ ������������������ ������������� ������������ � ������� login � ������� password � ������������ ������ ������ User, ��������� �� ������ ���������� �� ���� ��. ����� ������ ���������� null, ���� ������������ � ���������� ������� � ������� �� ����������.

����� �������� � ������������������ ������������� �������� � ������� USERS, ������� ��������� ���������:

����� ��� ������� ��������������� ����� getNextUser(), ������� ���������� ��������� ������ ���� �������, � ���� ����� ������ ���, ���������� null. ��������� ����� ������ ����� ��������� ��������� �������:

Map getNextUser();

��������, ������������ ��������� ����� ������������ ��� Map, � �� ������-�� ����������� ������ (��������, Hashtable). ��� ���������������� ������ � ���������� ������. �������, ������ ������ ���������� ������ � �������� ����������� ������ (��������, � ��� �� Hashtable � ���� ����� ������ ������� ������������ ������, � ������� ������ ������������ ����� ��� ���������� ������). ��, ������� ������ ����� ���������� � ������� ��������� ��������� ���� ���������� ����������� ���������� (��� ������������ ��������� ������������ ��������� Map), ����� ���������� ������� ��������. ������������ ����� ���� ������� ������� �������� Hashtable �� HashMap, � ��� ���� ��� ��������� ����� ����� ���������� ������ � ���� ������ getNextUser(), � �� �� ���� ������ ���������, ��� �� ���������.

������� ��������� �������������� �������, ������������� ������� getNextUser(), �������� ������, ����������� � ���������� �������� �������, � ���������� � ������, ���������� �������� �� ��������������� ������ �������. �����������, ��� ���� ����� � ���� �� ��������� ��� ������: �������� �������� 0 ������� category �� ������ "user", � �������� 1 �� ������ "admin". ���� � ���, ��� � ����������� �� ��������� ������������ (������� � �� ������������ ������), �� ������ ������� ���� ������ ������ User, ���� ������ ������������ �� ���� ������ Admin.

��� ����� ����� ��������� ��������� �������. (�������� ��� ��� ������, ������ ������������ �����������. � ������� �� ��������!)

private User findUser(String login, string password) { Map userData = getNextUser(); while (userData != null) { if (((String)UserData.get("login")).equals(login) && ((String)UserData.get("password")).equals(password)) { if (((String)UserData.get("category")).equals("user")) return new User((String)UserData.get("name")); if (((String)UserData.get("category")).equals("admin")) return new Admin((String)UserData.get("name")); } } userData = getNextUser(); } return null; }

�������� �������� ��� ������ ���, ��������� � �������������� ������� userData ������� get() � ������� ��������, ��������������� � ������ ��� ������, �� �������� ��� � ���� String.

�������� �������� �� ����������� ����� while: �� �������� ����� getNextUser(), ���� �� �� ��������� ��� �������� null. ���� � �������� ��������� ���������� ������ ������ �� ������� �� ���������, ��� ����� � ������ ��������� � ����������� ������, �� ��������� ������ ������ �������� return, ��������� ��������� ������. ���� �� ������� return �� ���� �� ��������� � �����, ��� ����� ��������, ��� ������ ������������ � ���� ��� � ����� ������ ������� null, ��� �� � ������ � ��������� ������.

������-��������

��������-��������������� ������ � �������� ��������� ���� ��� ��� �����������. � ���������, ����������� �������� � ��������� ������� ����� �������. �� ��� ���� ������� ���� ������ ����������� �����������. �� �� ����� ������� ��������� ����� ����� int ��� �������� char*.

��� ����, ����� �������� � �������� ������ ������ ��� � ��������� (�, � ���������, ��������� �� � ����������), ������������ ��� ���������� ������-�������� (wrappers). �����-�������� �������� �� ����� �������� ��������: �� ������ ������ ���� ���� �������� ���� � ������������� ��������� �������� ��� ������� � ����� ����.

� ����������� ���������� Java ���������� ������ �������-�������� � �� ������ �� ������ ������� ���. �� �������� ��������� � ���������� ���� �����, �� ���������� � ��������� �����. �� ����, ��� Byte, Short, Long, Float, Double, Char, Boolean. ���������� � �����-�������� ��� ����� �����, ������� ���������� Integer. ������ ����� ����� ������� �����������, ����������� �������� ���������������� ����.

Integer i = new Integer(15); Boolean b = new Boolean(false);

��� ������������� ����� ����� �������� ����������� ������ � ������� ������ �� ��� �������. ��������������� ���������� � �������� ���� �� ����������. ��� ���, ���� ��� ���� �������� � �����-�� ����� �������� ���� int, � ������ ��� ����� ������������ ����� ������ ������ Integer, ���� ����������� ����� ��������������:

String s; �har ch = s.charAt(i.intValue);

���� ����� ������ ��������� ������� ������� ����� � ����� ���������. ��������:

Vector vect = new Vector(); vect.add(b); vect.add(new Double(3.14));

����� Vector � ��������� ������� Java ��������� ���������� � ����� � ����������� ���� ������, ������������� �������� ��� ��� ��������.

������ � ����� � ��������

������ ���� ����/����� ���������� ������������ �������� �����, ������� ��� ����������� ����� ���������������� ���������� ������� �������� ��� ������ � ���� � ����� �� ����� ���������.

� Java ��� ���� ����� ����������� ������ DateCalendar, ��������� � ������ java.util.

����� Date ������ ����� �����������, ��������� � 1 ������ 1970 ���� (�� ���������� ����, ������� ��� long). ����������� ��� ���������� ����� ������ ������� ������, ���������� ������� ����� (�� ��������� ����� ������, �� ������� ����������� ���������). ������ �����������, � ���������� ���� long, ������� ������ Date �� ������ ��������� �����.

����� getTime() ��������� �������� ��� �����, � ����� setTime(long newTime) � ��������.

��� ����������� ���� �� ������ �� ���������� ������������� ���������� ��������� � ������, ����� ������� ��� ����������. ��� ����� ������ ������������ ����� SimpleDateFormat (���������� ����������� ������������ ������ DateFormat), ������� ���� ������������� �� ������ java.text. ������ ����� ���������� ������� ������ ����� ������, ������ � �������� ��������� ������������ ������, ������������ ������ ��������������. ��������:

SimpleDateFormat formatter = new SimpleDateFormat("dd.MM.yyyy hh:mm");

������ ������� ������� ����� format() ���������� �������������� �������, ������� ��� � �������� ��������� ��� ������ Date, ������� �� ����� ����������� � ���� ������. ����� ������� �� ����� ������� ����, ���������� �������:

System.out.println(formatter.format(new Date()));

� ������ ��������� ���� ����� ��������� ������ � �������

23.09.2007 05:51

� ������ "dd.MM.yyyy hh:mm" dd �������� ����� ���, MM � ����� ������, yyyy � ����� ����, hh � ���� � mm � ������. ���������� MMMM ���� �� �������� ������ (� ������������ ������), � yy � ������ ��� ��������� ����� ����. ��������� ������������ ����� ��������� � ����� ������� (������, ��� ��� �������������� �� �������), � ����������� ����� ���� (� ������� ��� �����, ������ � ���������) ����� ���� � �������.

����� Calendar ��������� �������� � ����� �� ����� ������� ������, �������� ������������ ������������ ���� (�����, �����, ��� � �.�.). �� �������� �����������, ������� ���������� ������������ ����� �� ��� �����������. ������� �������� GregorianCalendar (����������� ������������� ���������, �� �������� �� �����).

������� ������ ����� ������, ���������� ������� ����/����� ����� ������������� ��� ����������. ����� �� � ������ GregorianCalendar ���� �������������, �������� ������ �� ��� ��������� ����� ����������:

GregorianCalendar(int year, int month, int day, int hour, int minutes, int seconds)

�������� ����� ����� ���� ����� � ������� �������������� ������ get(int field). ������������� �������� field ���������� �������� ����� ����.

� ������ Calendar ���������� ���������, ����������� ��������� ��������: ERA, YEAR, MONTH, WEEK_OF_YEAR, WEEK_OF_MONTH, DAY_OF_YEAR, DAY_OF_MONTH, DAY_OF_WEEK, HOUR_OF_DAY, MINUTE, SECOND, MILLISECOND � ��������� ������.

��������, ������, ����� ������� ���� ����:

GregorianCalendar today = new GregorianCalendar(); int result = today.get(Calendar.DAY_OF_YEAR); System.out.println(result);

����� ����� ���� ����� �������� ������� set(int field, int value).

����������

������������� � ������������ �����, ������������, ������� ������� ������ � �������� ����. � ������� ����� ������ �������� � �������, ������� ����� ������ � ������ ��� �������� � ������� ��� ���������� ����, ��������: ���� ����������� 20 ���, 3 ������, 18 ����, 4 ����, 5 ����� � 10 ������.

��������� ��������� �����

� ������ java.util ������ ����� Random, ���������� ����������� ��������� �����. �� ����� ���� � ���� ����� ������� ��� �� ����� ������������ ������� ��������� �����. ����� ������������ ������������ ����������, ������ ������ ��������� ����� ������� �� �����������, � ����� ������ � �� ���������� �����, ����������� ���������������. ��� ������������������ ����������� �����, ��������������� �� ������ ������ ��������������, ����� ���������.

����� Random ����� ��� ������������:

Random() � ������� ��������� ��������� �����, ������������ � �������� �������������� ������� ���� (����� ����������� � 1 ������ 1970);

Random(long seed) � ������� ��������� ��������� �����, ������������ � �������� �������������� ����� seed.

������������� ������������ ������ �����������, ����� ��������� ������� ������ ��������� ����� ��� ������ ����� ������� ���������.

�� ���������� ����� �������� ��������� ����� ������� ���� � ������� ������� nextBoolean(), nextInt(), nextLong(), nextFloat(), nextDouble(). ������������ ����� ������������ � ��������� �� 0 �� 1 (�� ������� 1), � ����� � �� ����� ��������� ��������� ��������. ����� ������������� ����� ����� � ������ ��������� (�� 0 �� max-1) ������� nextInt(int max) ��� nextLong(long max).

�������, ����� ��������� ���������� ������� ����� ������ (�������������� ���������), ���������������� ������� nextBytes(byte[] arr). �������� ������� arr ������ ����� ��� byte.