import java util public class StackT private Linked
Пример простой реализации стека import java. util. *; public class Stack<T> { private Linked. List<T> content; public Stack() { content = new Linked. List<T>(); } public void push(T obj) { content. add. First(obj); } public T pop() throws No. Such. Element. Exception { return content. remove. First(); } public boolean has. More. Elements() { if (content. size() > 0) return true; else return false; } Новосибирск, 2004 public static void main(String args[]) throws No. Such. Element. Exception { Stack<String> s = new Stack<String>(); for (String o : args) { s. push(o); } while(s. has. More. Elements()) { System. out. println(s. pop()); } } } (С) Всеволод Рылов, все права защищены 12
Класс-утилита Collections Служит для поддержки классов контейнеров и осуществления основных манипуляций с содержимым: sort(List), sort(List, Comparator) binary. Search(List, Object), binary. Search(List, Object, Comparator) reverse(List) shuffle(List), shuffle(List, Random) fill(List, Object) copy(List, List) min(Collection), min(Collection, Comparator) max(Collection), max(Collection, Comoarator) Представляет коллекцию как Enumeration (метод enumeration(Collection)) Создает не модифицируемый список, содержащий несколько копий объекта: n. Copies(int, Object): List Содержит специальные статические поля: EMPTY_SET, EMPTY_LIST, EMPTY_MAP Новосибирск, 2004 (С) Всеволод Рылов, все права защищены 17
Пример – копирование файлов import java. io. *; public class File. Copy { public static void main(String args[]) { Input. Stream in = null; Output. Stream out = null; try { in = new File. Input. Stream(args[0]); out = new File. Output. Stream(args[1]); } catch (Exception e) { System. out. println("Неправильные аргументы"); if (in!=null) try {in. close(); } catch(IOException ix 2){} return; } byte buf[] = new byte[1024]; //Буфер для хранения промежуточного блока int read; //Переменная для хранения количества прочитанных байт try { while ( (read = in. read(buf)) >= 0) //При достижении конца вернет <0 out. write(buf, 0, read); //Записываем ровно столько сколько удалось прочитать } catch (IOException ioex) { System. out. println(“Ошибка ввода/вывода: ”+ioex. get. Localized. Message()); } finally { try {in. close(); } catch(IOException ix 2){} try {out. close(); } catch (IOException ix 3) {} } Новосибирск, 2004 (С) Всеволод Рылов, все права защищены 26
Работа с сетью Для работы с сетью используется пакет java. net, предоставляющий средства: адресации в Internet (Inet. Address, + средства java 1. 4: Inet 4 Address, Inet 6 Address, Inet. Socket. Address, Socket. Address) работы с протоколом TCP (Socket, Server. Socket, Socket. Options) работы с протоколом UDP (Datagram. Socket, Datagram. Packet, Multicast. Socket) работы с URL и поддержки HTTP (URL, URLConnection, Http. URLConnection, Jar. URLConnection, URLDecoder, URLEncoder, Content. Handler, URLStream. Handler) авторизации в Internet (Authenticator, Password. Authentication) динамической загрузки классов из сети (URLClass. Loader) Новосибирск, 2004 (С) Всеволод Рылов, все права защищены 39
- Slides: 40