Главная страница

Java. Полное руководство. 8-е издание. С. Н. Тригуб Перевод с английского и редакция


Скачать 25.04 Mb.
НазваниеС. Н. Тригуб Перевод с английского и редакция
АнкорJava. Полное руководство. 8-е издание.pdf
Дата28.02.2017
Размер25.04 Mb.
Формат файлаpdf
Имя файлаJava. Полное руководство. 8-е издание.pdf
ТипДокументы
#3236
страница43 из 90
1   ...   39   40   41   42   43   44   45   46   ...   90
int Присваивает объект каждому элементу список
Подсчитывает количество вхождений объект в си возвращает результат
Ищет в список первое вхождение вложенныйСписок.
Возвращает индекс первого совпадения или значение -1, если вхождение не найдено
Ищет в список последнее вхождение вложенныйСписок.
Возвращает индекс первого совпадения или значение -1, если вхождение не найдено
Возвращает объект класса
ArrayList, содержащий элементы перечисление
Возвращает максимальный элемент из с, определенный при помощи компаратор
Возвращает максимальный элемент из с, определенный естественным порядком. Коллекция должна быть отсортированной
Возвращает минимальный элемент из с, определенный при помощи компаратор. Коллекция может быть неотсортированной
Возвращает минимальный элемент из с, определенный естественным порядком
Возвращает количество копий объект, содержащихся в неизменяемом списке. Значение параметра количество должно быть больше нуля или равно нулю
Создает и возвращает набор на основе ш который должен быть пустым на момент вызова метода
Заменяет все вхождения старый на. новый в список.
Возвращает значение
true, если выполнена хотя бы одна замена. В противном случае возвращает значение Изменяет последовательность элементов в список на обратную
Возвращает компаратор, обратный переданному в компаратор.
То есть возвращенный компаратор порождает последовательность, обратную той, что делает компаратор
Возвращает обратный компаратор, который обращает результат сравнения двух элементов
Смещает список на п
позиций вправо. Для смещения влево используйте отрицательное значение п
Глава 17. Пакет java.util: инфраструктура Collections Fram ew ork
5 1 7
___________________________________ ___________ Продолжение табл. Метод

____________________ _________ Описание
-
■■
-

static void shuffle(List список список Set singleton(T
объект List
singletonList(T объект Map
V > s К
k ,
V v)
static void sort(List список компаратор
Comparable
sort(List список void swap(List список,
int индекс индекс Collection synchroni
zedCollection(Collection c)
static List
synchronizedList(List список Map
V>synchronizedMap(Map
m)
static Set
synchronizedSet(Set
s)
static SortedMap
V>synch
ronizedSortedMap
(So rtedM ap < K,
V> sm)
static SortedSet synchroniz
edSortedSet(SortedSet
ss)
static Collection
unmodifiable
Collection(Collection
extends T> c)
static List
unmodifiableList(List список Map
V>unmodifiableMap(Map
?extends V>
m)
static Set
unmodifiableSet(Set
extends T> Перемешивает (случайным образом) элементы в список,
используя г в качестве источника случайных чисел
Перемешивает (случайным образом) элементы в список
Возвращает объект как неизменяемый набор. Это простейший способ преобразовать отдельный объект в набор
Возвращает объект как неизменяемый список. Это простейший способ преобразовать отдельный объект в список
Возвращает пару “ключ-значение” k / v как неизменяемую карту. Это простейший способ преобразовать пару “ключ-значение” в карту
Сортирует элементы список в соответствии с компаратор
Сортирует элементы список в соответствии с естественным порядком
Меняет местами элементы список,
находящие­
ся в позициях индекс1
и и ндекс2
Возвращает безопасную в отношении потоков коллекцию, наполненную элементами с
Возвращает безопасный в отношении потоков список, наполненный элементами список
Возвращает безопасную в отношении потоков карту, наполненную элементами Возвращает безопасный в отношении потоков набор, наполненный элементами Возвращает безопасную в отношении потоков отсортированную карту, наполненную элементами Возвращает безопасный в отношении потоков отсортированный набор, наполненный элементами
S Возвращает немодифицируемую коллекцию, наполненную элементами
с
Возвращает немодифицируемый список, наполненный элементами список
Возвращает немодифицируемую карту, наполненную элементами Возвращает немодифицируемый набор, наполненный элементами s

5 1 Часть II. Библиотека Метод
_____________________ Описание
. 1 ' '
static К V> SortedMapunm
Возвращаетнемодифицируемуюотсортиро-
odif
iableSortedMap (ванную карту, наполненную элементами sm
?extends V>
sm)
static SortedSet unmodifiab
Возвращаетнемодифицируемыйотсортиро-
leSortedSet (SortedSet ванный набор, наполненный элементами s При попытке сравнения несовместимых типов некоторые из этих методов могут передать исключение
ClassCastException либо исключение
Unsupported-
OperationException, при попытке модифицировать немодифицируемые коллекции. В зависимости от метода, возможны и другие исключения.
Особое внимание следует уделить набору перегруженных методов, таких как метод ch e ck e d C o l l e c t io n (), который возвращает то, что в документации по API именуется динамическим представлением, безопасным в отношении типов коллекций. Это представление является ссылкой на коллекцию, которая вовремя выполнения отслеживает вставку объектов в коллекцию на предмет совместимости типов. Попытка вставить несовместимый элемент вызовет исключение C la s s C a s tE x c e p tio n . Использование этого представления полезно при отладке, так как гарантирует, что коллекция всегда содержит корректные элементы. К этим методам относятся c h e c k e d S e t (), c h e c k e d L is t (), checkedM ap () и т.д. Они позволяют получить безопасное в отношении типов представление указанной коллекции.
Отметим, что некоторые методы, такие как synchronizedList
() и syn- chronizedSet ()
, служат для получения синхронизированных (безопасных вот ношении потоков) копий различных коллекций. Как упоминалось, стандартные реализации коллекций, как правило, не синхронизированы. Для обеспечения синхронизации следует применять синхронизирующий алгоритм. И еще один момент итераторы для синхронизированных коллекций должны использоваться в пределах блоков Набор методов, начинающихся с unmodif iable, возвращает представления различных коллекций, которые не могут быть модифицированы. Это может оказаться удобным, если вы хотите гарантировать доступ к коллекциям только для чтения, без права записи.
В интерфейсе
Collection определены три статические переменные
EMPTY_
SET, EMPTY_LIST и
EMPTY_MAP. Все они являются константами.
В следующей программе демонстрируются некоторые алгоритмы. Программа создает и инициирует связный список. Метод reverseOrder
() возвращает объект интерфейса
Comparator, который обращает сравнение объектов класса
Integer. Элементы списка сначала сортируются согласно этому компаратору, а затем отображаются. Далее этот список тасуется вызовом метода shuffle (), после чего отображаются его минимальное и максимальное значения Демонстрация применения различных алгоритмов
import java.util.*;
class AlgorithmsDemo {
public static void main(String a r g s []) {
// Создать неинициализированный связный список 11 = new LinkedList();
11.a d d (-8);
11.a d d (20);
11.a d d (-20);
11.a d d (8);
Глава 17. Пакет java.util: инфраструктура Collections Fram ew ork
5 1 9
// Создать компаратор обратного порядка г = Collections.reverseOrder();
// Сортировать список этим компаратором o r t (11, г);
System.out.print("Список отсортирован в обратном порядке ");
for(int i :
11)
System.out.print(i+ " ");
System.out.println();
// Тасовать список Отобразить перемешанный список.
System.out.print("Список перемешан ");
for(int i :
11)
System.out.print(i + " "Минимум " + Максимум " + Ниже приведен вывод этой программы.
Список отсортирован в обратном порядке 20 8 -8 -20 Список перемешан 20 -20 8 -8
Минимум -2 0
Максимум 2 Обратите внимание на то, что методы m in
() и max
() оперируют списком после того, как он был перемешан. Ни один из этих методов не требует, чтобы список был отсортирован.
Класс
A r r a y Этот класс предоставляет разнообразные удобные методы для работы с массивами. Эти методы помогают заполнить пробел между коллекциями и массивами. Каждый метод, определенный в классе
A r r a y s , рассматривается далее в разделе.
Метод a s L i s t
() возвращает список, наполненный элементами указанного массива. Другими словами, и список, и массив ссылаются на одно и тоже. Он имеет следующую сигнатуру Т List asList(T...

массив)
Здесь массив это массив, содержащий данные.
Метод b i n a r y S e a r c h
() использует бинарный поиск для нахождения заданного значения. Этот метод должен применяться к отсортированным массивам. Он имеет следующие формы (дополнительные формы обеспечивают поиск в диапазоне значений int binarySearch(byte массив ], byte значение)
static int binarySearch(char массив ], char значение)
static int binarySearch(double массив ], double значение)
static int binarySearch(float массив ]
,
float значение)
static int binarySearch(int массив ], int значение

5 2 Часть II. Библиотека Java
static int binarySearch(long массив ], long значение)
static int binarySearch(short массив ], short значение)
static int binarySearch(Object массив ],
Object значение int binarySearch(T[ ] массив T значение Comparator Здесь массив это массив, в котором осуществляется поиска значение значение, которое нужно найти. Последние две формы передают исключение
ClassCastException, если массив содержит элементы, которые невозможно сравнивать (например, классов
Double и
StringBuffer), либо значение несовместимо с типами массив В последней форме интерфейс
Comparator с используется для определения порядка элементов в массиве массив. Во всех классах, если значение содержится в массив, возвращается индекс элемента. В противном случае возвращается отрицательное значение.
Метод сору) возвращает копию массива и имеет следующие формы boolean[ ]

copyOf(boolean[ ] источник int длина)
static b y t e [ ] copyOf(byte[
] источник int длина)
static char[ ] copyOf(char[
] источник int длина)
static doublet ] copyOf(doublet источник int длина)
static floatt
]
copyOf(float[ ] источник int длина intt ] copyOf(intt ] источник int длина longt ] copyOf(longt ] источник int длина)
static shortt
] copyOf(short[ ] источник int длина T [
] copyOf(T[ ] источник int длина T[ ] copyOf(U[ ] источник int длина Class типРезульт)
Исходный массив задан параметром источника длина копии — в параметре длина Если копия длиннее, чем источник, она дополняется нулями (для числовых массивов, значениями null для массивов объектов) или значениями false для булевых массивов. Если копия короче, чем источник, она усекается. В последней форме тип типРезульт становится типом возвращаемого массива. Если длина отрицательна, передается исключение
NegativeArraySizeException. Если источник содержит значение null, передается исключение
NullPointerException. Если тип типРезульт несовместим с типом источник, передается исключение
ArrayStoreExcept Метод copyOf
Range
() также возвращает копию диапазона внутри массива и имеет следующие формы boolean[

]
copyOfRange(boolean[ ] источник int начало int конец)
static byte[ ]
copyOfRange(byte[ ] источник int начало int конец char[ ] copyOfRange(char[ ] источник int начало int конец doublet
]
copyOfRange(double[ источник int начало int конец float[
]
copyOfRange(float[
источник int начало int конец i n t [ ]
copyOfRange(i n t [
] источник int начало int конец long[ ] copyOfRange(longt ] источник int начало int конец)
static shortt
]
copyOfRange(shortt ] источник int начало int конец T[
] copyOfRange(T[
] источник int начало int конец T[ ] copyOfRange(U[ источник int начало int конец,
Class
типРезульт)
Исходный массив задан параметром источник Диапазон для копирования задан индексами, передаваемыми параметрами начало икон ец .
Диапазон распространяется от начало док он е ц -
1. Если диапазон длиннее, чем источник, копия дополняется нулями (для числовых массивов, значениями null для массивов объектов) или значениями f a l s e (для булевых массивов. В последней форме тип т ипРезульт становится типом возвращаемого массива.
Если начало отрицательно или больше длины источник, передается исключение
ArraylndexOutOfBoundsException.
Глава 17. Пакет java.util: инфраструктура Collections Fram ew ork
5 2 Если начало больше конец, передается исключение
1 1 legal
Argument-
Exception. Если источник содержит значение null, передается исключение
NullPointerException. Если т ипРезульт несовместим с типом источник, передается исключение
ArrayStoreExcept Метод equals
() возвращает значение true, если два массива эквивалентны. В противном случае он возвращает значение Различные формы метода equals
() показаны нижем асс ив массив массив ,
byte массив массив массив массив массив массив массив массив массив массив ,
long массив массив массив массив массив Здесь массив и массив —
массивы, сравниваемые на эквивалентность.
Метод deepEquals
() может быть использован для определения того, являются ли два массива, которые могут содержать вложенные массивы, эквивалентными. Он имеет следующее объявление boolean deepEquals(Object[]

a ,
O b ject[] Метод возвращает значение true, если переданные ему массивы аи Ъ эквивалентны. Если массивы аи Ъ содержат вложенные массивы, они также сравниваются. Если массивы аи Ь либо их вложенные массивы отличаются, метод возвращает значение Метод fill
() присваивает значение всем элементам массива. Другими словами, он заполняет массив указанным значением. Метод fill
() имеет две версии. Первая версия, формы которой представлены ниже, заполняет весь массив void fill(boolean массив значением а е си в, byte значением асс ив значением асс ив значением асс ив значением асс ив значением асс ив значением асс ив значением асс ив

значение)
Здесь значение присваивается всем элементам м ассив.
Вторая версия метода fill
() присваивает значение подмножеству массива. Его формы перечислены ниже void fill(boolean массив int начало int конец boolean значение)
static void fill (byte массив [] ,
int начало int конец byte значение)
static void fill(char массив int начало int конец char значение)
static void fill (double массив [] ,
int начало int конец double значение)
static void fill(float массив ,
int начало int конец float значение)
static void fill (int массив [] ,
int начало int конец int значением асс ив начало int конец long значение)
static void fill(short массив, int начало int конец short значением асс ив начало int конец Object
значение)
Здесь значение присваивается элементам массив от позиции начало док он е ц - 1. Все эти методы могут передать исключение
II legal
Argument
Except ion, если начало больше конец, либо
ArraylndexOutOfBoundsException, если начало или конец выходят за пределы массива. Исключение
ArrayStoreExcept ionis возможно и с версиями класса
Obj ect.

5 2 2 Часть II. Библиотека Метод sort
() сортирует массив таким образом, что он упорядочивается ввоз растающем порядке. Метод sort
() имеет две версии. Первая версия, показанная ниже, сортирует весь массив void sort(byte массив массив массив массив массив массив массив массив массив Здесь массив это массив, подлежащий сортировке. В последней форме с
— это интерфейс
Comparator, который используется для упорядочения элементов массив Последние две формы могут передавать исключение
ClassCastException, если элементы сортируемого массива несовместимы.
Вторая версия метода sort
() позволяет указать диапазон массива, который вы хотите сортировать. Его формы представлены нижем асс ив начало int конец void sort(char массив начало int конец void sort(double массив начало int конец void sort(float массив начало int конец void sort(int массив начало int конец void sort(long массив начало int конец void sort(short массив начало int конец void sort(0bject массив начало int конец void sort(T массив начало int конец Comparator
super T> Здесь будет отсортирован диапазон элементов массива, начинающийся сна ч а ло и заканчивающийся конец. В последней форме с
— это интерфейс
Comparator, который используется для определения порядка элементов массива.
Все эти методы могут передавать исключение
II legalArgument
Except ion, если начало больше конец, либо
ArraylndexOutOfBoundsException, если начало или конец выходят за пределы массива. Последние две формы также могут передать исключение
ClassCastException, если сортируемые элементы массива не совместимы.
Класс
Arrays предоставляет также методы toString
() и hashCode
() для различных типов массивов. Кроме того, в нем предусмотрены методы deepTo-
String
() и deepHashCode
( ), которые эффективно работают с массивами, имеющими вложенные массивы.
В следующей программе иллюстрируется применение некоторых методов класса
Arrays.
1   ...   39   40   41   42   43   44   45   46   ...   90


написать администратору сайта