Помощь в написании студенческих работ
Антистрессовый сервис

Файлы, которые были в примере

РефератПомощь в написанииУзнать стоимостьмоей работы

Создадим класс WorkerComparator, который реализует Comparator. Предварительно сделаем импорт этого класса. Ключевое слово implements означает, что класс полевую сторону от слова реализует класс, который находиться по правую сторону от слова. Создадим метод compare (Worker W1, Worker W2), который сравнивает двух рабочих по определённому показателю, в данном случае — это дата начала работы… Читать ещё >

Файлы, которые были в примере (реферат, курсовая, диплом, контрольная)

Go.

Файлы, которые были в примере.

До этого мы работали с объектами в классах, как с полями или как с переменными внутри метода. Настало время для основной программы. Она не сложная т.к. основная реализация в методах класса. А теперь можно смело этим пользоваться за доли секунд — это и есть плюс ООП. По факту, подключаем нужные пакеты. Потом идёт метод main () — это основной метод, компилятор его ищет и не пытайтесь обмануть его, например в С++ для этого связи файлов есть специальные конструкции, например отдельный файл main или заголовочные файлы типа .h. Отступление завершено, вернёмся к Java, далее стандартно создаём объекты классов, предварительно вводя данные с клавиатуры, ну, а я в своём тестовом случае ввёл их сразу. И выполняем программу, отмечу лишь длинный кусок обращения к данным в таком случае: W. get (i).Data.getSecondName ().1)W (список Worker) берём его элемент при помощи get (i). 2).

После того как взяли элемент типа Worker обращаемся к полю (не через геттер), делать геттеры полезно т.к. не все имеют доступ к полям, а к геттерам имеют доступ все, в этом их разница, хотя функция одна. 3) Т.к. поле Data типа Person, то для неё мы обращаемся к полю через геттер getSecondName () и берём фамилию.

Я специально так выбрал, чтобы в конце концов показать всю цепочку моего проекта и насколько он гибок. В конце покажу этапы выполнения этой программы.

Директор: Имя Андрей, Фамилия Иванов, Возраст 65; Оклад = 1 000 000.0.

1-ый этап Рабочий первого уровня: Имя Сергей, Фамилия Петров, Возраст 35; Оклад = 300 000.0.

Рабочий второго уровня: Имя Игорь, Фамилия Паршивлюк, Возраст 32; Оклад = 200 000.0.

2-ой этап Список:

Рабочий Иванов работает 30 лет Рабочий Петров работает 12 лет Рабочий Паршивлюк работает 10 лет.

3-ий этап.

[Директор: Имя Vlad, Фамилия GG, Возраст 12; Оклад = 0.0, Рабочий первого уровня: Имя Vlas, Фамилия GG, Возраст 42; Оклад = 0.0, Рабочий второго уровня: Имя Vlag, Фамилия GG, Возраст 13; Оклад = 0.0].

4-ий этап Приложение «Сортировка и количество объектов».

Сортировка — это один из важнейших элементов программирования, но и узнать о количестве элементов в нашей коллекции будет не лишним, поэтому реализуем их.

Файлы, которые были в примере.

Создадим класс WorkerComparator, который реализует Comparator. Предварительно сделаем импорт этого класса. Ключевое слово implements означает, что класс полевую сторону от слова реализует класс, который находиться по правую сторону от слова. Создадим метод compare (Worker W1, Worker W2), который сравнивает двух рабочих по определённому показателю, в данном случае — это дата начала работы служащих. Две временные переменные получают значение полей от метода Start (), после чего они сравниваются. Это поможет нам в сортировке, когда создадим объект класса WorkerComparator. Переходим в класс Company. В нём следует создать метод Sort (), который возвращает отсортированный список рабочих. Алгоритм нашего метода следующий:

  • 1) Создаём массив Worker из списка, чтобы позже применить сортировку для массива (только для массива существует специальная сортировка при классе Comparator).
  • 2) Создаём объект класса сортировки (потому что не видно того класса внутри Company) WorkerComparator.
  • 3) Сортируем при помощи специального метода sort (_Массив_, _Критерий сортировки_) и получаем отсортированный массив.
  • 4) Выведем отсортированные данные (вместо метода main[]) для проверки.
  • 5) Переносим наш массив обратно в список т.к. пользователь начинал работу со списком, поэтому нужно вернуть такую же динамическую структуру.

В итоге мы отсортировали данные по _Критерию сортировки_.

Вот и второй обещанный метод. Здесь мы узнаём количество рабочих проработавших определённое количество лет. Например, кол-во людей отработавших 17 лет. В этом нам помогут хэш-таблицы, а также специальные метода и структуры данных. В классе Worker следует переопределить методы equals () и hashCode (), поскольку наша динамическая структура будет нуждаться в них при составлении своих ключей.

Файлы, которые были в примере.

Я это сделал при помощи Java. Она позволяет нам создавать эти методы автоматически. Это можно сделать также как и с методом toString (). Сделав все вспомогательные методы можно перейти к реализации основной задачи — метода Hash ().

Файлы, которые были в примере.

В этом методе есть новая вещь. Это HashMap на основе Map. Достоинства этой структуры состоят в том, что у неё есть много встроенных методов, а также у неё индекс (ключ) может быть разных типов, также как и поле данных. У нас ключ — это количество проработанных лет (т.к. именно по этому критерию удобно искать людей), а поле данных — это количество людей. Суть метода: просматриваем всех рабочих и заносим в «хэш-структуру»: если элемент новый, то мы создаём ключ с нужным количеством проработанных лет и полю данных придаём значение 1 т.к. это первый человек с таким стажем, если же такой элемент существует, то просто увеличиваем поле данных на 1. Поиск за константное время — это огромный плюс хэш-таблицы.

Основной класс Go потерпит следующие изменения:

Файлы, которые были в примере.

Тут мы добавили двух новых рабочих второго типа в новую компанию InterMilan. Выполнение части кода даст следующий результат:

Отсортированные по времени работы рабочие:

Фамилия: Петров Время работы: 12.

Фамилия: Быстров Время работы: 14.

Фамилия: Иванов Время работы: 30.

Фамилия: Паршивлюк Время работы: 30.

Фамилия: Сороконюк Время работы: 50.

Что касается последних двух строчек, то я покажу результат в памяти, потому что Java позволяет.

Файлы, которые были в примере.

В левой части экрана мы видим таблицу «Переменные», которая содержит «M» — это наша хэш-таблица, данные у которой подчёркнуты жёлтым (один человек отработал 50 лет, два отработали по 30 лет…).

сортировка программирование eclipse.

Показать весь текст
Заполнить форму текущей работой