АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомДругоеЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция

Й индекс

Читайте также:
  1. B) Индивидуальный индекс цен
  2. ZKFINDSP (ЗП.Коэффициенты индексации Хроника)
  3. Агрегатная форма индекса и индексы в средней арифметической и средней гармонической формах
  4. Агрегатная форма общего индекса.
  5. Агрегатные индексы. Система индексов
  6. Агрегатный индекс цен: особенности построения с учетом разных весов
  7. Адресация информации и обработка адресов в ЭВМ. Непосредственная, прямая регистровая, косвенная, индексная, относительная, адресация.
  8. Антропогенное давление и индекс антропогенной нагрузки на биосферу
  9. Балла). Введение импортных пошлин повысило цены ввозимых потребительских товаров. Как это отразится на индексе цен?
  10. Биржевые индексы.
  11. ВВП и методы его расчета (по доходам, по расходам, по добавленной стоимости). Номинальный и реальный ВВП. Дефлятор ВВП. Индексы цен.
  12. ВВП и цены. Номинальный и реальный ВВП. Индексы цен.

Й индекс

19.0 18.0 17.0 16.0 15 14 13 12 11 10

[13, 15, 16.0, 17.0, 18.0, 19.0, 71]

13 15 16.0 17.0 18.0 19.0 71:size= 7

size= 2

При реализации интерфейса Comparator<T> существует возможность сортировки списка объектов конкретного типа по правилам, определенным для этого типа. Для этого необходимо реализовать метод int compare(T ob1,
T ob2)
, принимающий в качестве параметров два объекта для которых должно быть определено возвращаемое целое значение, знак которого и определяет правило сортировки. Этот метод автоматически вызывается методом public static <T> void sort(List<T> list, Comparator<? super T> c) класса Collections, в качестве первого параметра принимающий коллекцию, в качестве второго – объект-comparator, из которого извлекается правило сортировки.

/* пример # 6: авторская сортировка списка: UniqSortMark.java */

package chapt10;

import java.util.Comparator;

 

public class Student implements Comparator<Student> {

private int idStudent;

private float meanMark;

 

public Student(float m, int id) {

meanMark = m;

idStudent = id;

}

public Student() {

}

public float getMark() {

return meanMark;

}

public int getIdStudent() {

return idStudent;

}

// правило сортировки

public int compare(Student one, Student two) {

Return

(int)(Math.ceil(two.getMark() - one.getMark()));

}

}

package chapt10;

import java.util.*;

 

public class UniqSortMark {

public static void main(String[] args) {

ArrayList<Student> p = new ArrayList<Student>();

p.add(new Student(3.9f, 52201));

p.add(new Student(3.65f, 52214));

p.add(new Student(3.71f, 52251));

p.add(new Student(3.02f, 52277));

p.add(new Student(3.81f, 52292));

p.add(new Student(9.55f, 52271));

// сортировка списка объектов

try {

Collections.sort(p, Student. class. newInstance ());

} catch (InstantiationException e1) {

//невозможно создать объект класса

e1.printStackTrace();

} catch (IllegalAccessException e2) {

e2.printStackTrace();

}

for (Student ob: p)

System.out.printf("%.2f ", ob.getMark());

}

}

В результате будет выведено:

9,55 3,90 3,81 3,71 3,65 3,02

Метод boolean equals(Object obj) интерфейса Comparator<T>, который обязан выполнять свой контракт, возвращает true только в случае если соответствующий метод compare() возвращает 0.

Для создания возможности сортировки по другому полю id класса Student следует создать новый класс, реализующий Comparator по новым правилам.

/* пример # 7: другое правило сортировки: StudentId.java */

package chapt10;

 

public class StudentId implements Comparator<Student> {

public int compare(Student one, Student two) {

return two.getIdStudent() - one.getIdStudent();

}

}

При необходимости сортировки по полю id в качестве второго параметра следует объект класса StudentId:

Collections.sort(p, StudentId.class. newInstance ());

Параметризация коллекций позволяет разрабатывать безопасные алгоритмы, создание которых потребовало бы несколько больших затрат в предыдущих версиях языка.

Deque

Интерфейс Deque определяет «двунаправленную» очередь и, соответственно, методы доступа к первому и последнему элементам двусторонней очереди. Методы обеспечивают удаление, вставку и обработку элементов. Каждый из этих методов существует в двух формах. Одни методы создают исключительную ситуацию в случае неудачного завершения, другие возвращают какое-либо из значений (null или false в зависимости от типа операции). Вторая форма добавления элементов в очередь сделана специально для реализаций Deque, имеющих ограничение по размеру. В большинстве реализаций операции добавления заканчиваются успешно.

В следующим примере реализована работа с интерфейсом Deque. Методы addFirst(), addLast() вставляют элементы в начало и в конец очереди соответственно. Метод add() унаследован от интерфейса Queue и абсолютно аналогичен методу addLast() интерфейса Deque.

/* пример # 8: демонстрация Deque: DequeRunner.java */

package chapt10;

import java.util.*;

 

public class DequeRunner {

public static void printDeque(Deque<?> d){

for (Object de: d)

System. out. println(de + "; ");

}

public static void main(String[] args) {

Deque<String> deque = new ArrayDeque<String>();

deque.add(new String("5"));

deque.addFirst("A");

//deque.addLast(new Integer(5));//ошибка компиляции

System. out. println(deque.peek());

System. out. println("Before:");

printDeque (deque);

deque.pollFirst();

System. out. println(deque.remove(5));

System. out. println("After:");

printDeque (deque);

}

}

В результате на консоль будет выведено:

A

Before:

A;

5;

False

After:

5;

Множества

Интерфейс Set<E> объявляет поведение коллекции, не допускающей дублирования элементов. Интерфейс SortedSet<E> наследует Set<E> и объявляет поведение набора, отсортированного в возрастающем порядке, заранее определенном для класса. Интерфейс NavigableSet существенно облегчает поиск элементов.

Рис. 10.2. Иерархия наследования множеств

Класс HashSet<E> наследуется от абстрактного суперкласса
AbstractSet<E> и реализует интерфейс Set<E>, используя хэш-таблицу для хранения коллекции. Ключ (хэш-код) используется вместо индекса для доступа к данным, что значительно ускоряет поиск определенного элемента. Скорость поиска существенна для коллекций с большим количеством элементов. Все элементы такого множества упорядочены посредством хэш-таблицы, в которой хранятся хэш-коды элементов.

Конструкторы класса:


1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | 110 | 111 | 112 | 113 | 114 | 115 | 116 | 117 | 118 | 119 | 120 | 121 | 122 | 123 | 124 | 125 | 126 | 127 | 128 | 129 | 130 | 131 | 132 | 133 | 134 | 135 | 136 | 137 | 138 | 139 | 140 | 141 | 142 | 143 |

Поиск по сайту:



Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Студалл.Орг (0.007 сек.)