JavaStart
917 subscribers
899 photos
28 videos
609 links
Учи Java вместе с нами!
Наша платформа с курсом - https://javastart.tech
Ютуб с обучающими видео - https://www.youtube.com/@javastart_tech
Download Telegram
Массивы в Java. Часть 9.

Полезные методы для работы с массивами.

Для работы с массивами в Java есть класс java.util.Arrays (arrays на английском и означает “массивы”). В целом с массивами чаще всего проделывают следующие операции:

– заполнение элементами (инициализация);

– извлечение элемента (по номеру);

– сортировка;

– поиск.

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

Вот три полезных метода этого класса:

1) Сортировка массива

Метод void sort(int[] myArray, int fromIndex, int toIndex)

– сортирует массив целых чисел или его подмассив по возрастанию.

2) Поиск в массиве нужного элемента

int binarySearch(int[] myArray, int fromIndex, int toIndex, int key)

– этот метод ищет элемент key в уже отсортированном массиве myArray или подмассиве, начиная с fromIndex и до toIndex. Если элемент найден, метод возвращает его индекс, если нет - (-fromIndex)-1.

3) Преобразование массива к строке

Метод String toString(int[] myArray)

– преобразовывает массив к строке. Дело в том, что в Java массивы не переопределяют toString(). Это значит, что если вы попытаетесь вывести целый массив (а не по элементам) на экран непосредственно
(System.out.println(myArray)), вы получите имя класса и шестнадцатеричный хэш-код массива (это определено Object.toString()).

Если вы — новичок, вам, возможно, непонятно пояснение к методу toString(). На первом этапе это и не нужно, зато с помощью этого метода упрощается вывод массива. Java позволяет легко выводить массив на экран без использования цикла.

Давайте создадим массив целых чисел, выведем его на экран с помощью toString(), отсортируем с помощью метода sort и найдём в нём какое-то число (4-я картинка).

👩‍💻 Наш практический курс Java–разработчика

JavaStart. Подписаться
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍62👨‍💻2
Please open Telegram to view this post
VIEW IN TELEGRAM
😁52💯2👍1
Массивы в Java. Часть 10.

Главное о массивах.

Главные характеристики массива:

– тип помещенных в него данных, имя и длина.

Последнее определяется при инициализации (выделении памяти под массив), первые два параметра определяются при объявлении массива.

– размер массива (количество ячеек) нужно определять в int.

– изменить длину массива после его создания нельзя.

– доступ к элементу массива можно получить по его индексу.

– в массивах, как и везде в Java, элементы нумеруются с нуля.

– после процедуры создания массива он наполнен значениями по умолчанию.

👩‍💻 Наш практический курс Java–разработчика

JavaStart. Подписаться
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍42👨‍💻2
Please open Telegram to view this post
VIEW IN TELEGRAM
😁7💯4🔥2🤓1
Коллекции в Java. Часть 1.

Начнем изучать обширную тему, которая нужна как для коммерческой разработки, так и для каждого собеседования на любой уровень.

Что такое коллекции?

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

Более простой пример структур — массивы: в них могут хранится сколько-то значений.

Но в отличие от массивов коллекции динамические – у них не фиксированная длина. Их размер может меняться – можно добавлять и удалять элементы с помощью методов.

Например, возьмем список чисел: [1, 1, 2, 3, 5]. Весь список — структура данных, в которой хранится 5 элементов. Если к нему можно добавить шестой элемент, допустим 8, — это динамическая структура данных, и она вполне может относиться к коллекциям.

На месте чисел могут быть строки, объекты и другие типы данных. Главное — элементы должны быть однородными, одинакового типа.

Для чего нужны коллекции?

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

Поэтому существуют динамические структуры. Так как они меняют размер, в них можно хранить практически любое количество информации и не опасаться, что они займут больше места, чем необходимо. Это делает программирование более удобным и ускоряет работу с данными.
Разные варианты коллекций нужны, потому что для различных задач требуются свои особенности хранения и обработки данных. Где-то они должны быть структурированными, а где-то — допустим, уникальными. В одной задаче важно быстро получать элементы, в другой — быстро добавлять. Поэтому реализации разные, и для каждой задачи эффективнее своя.

Это было введение, углубимся в Collection в следующих постах.

👩‍💻 Наш практический курс Java–разработчика

JavaStart. Подписаться
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍432👨‍💻1
Коллекции в Java. Часть 2.

Что такое Java Collections Framework?

Java Collections Framework — это часть JDK, или Java Development Kit, в которой описаны и хранятся коллекции, их устройство и иерархия.

Несмотря на название «фреймворк», это не отдельный инструмент, а одна из важных частей языка Java, точнее, набора инструментов для него. Там содержатся интерфейсы, которые описывают коллекции, и практические реализации.

Интерфейс — это как бы «схема», теоретическое описание поведения объектов. В нем содержатся методы, которые есть у всех его реализаций. А реализация — потомок интерфейса, практическая структура: такой объект можно создать и пользоваться им.

Интерфейс по определению похож на класс, но отличается от него тем, что может хранить только поведение — методы. У него, в отличие от класса, не может быть атрибутов — внутренних переменных, хранящих состояние.

У интерфейсов есть иерархия — более специфические наследуются от более общих. Это значит, что у них есть методы «предка», но есть и свои, специфичные особенности хранения и методы. А реализации — конечные наследники интерфейсов.

Получается наглядная иерархическая схема, где одно вытекает из другого.

Давайте теперь на картинке рассмотрим разные виды интерфейсов и их практические реализации. Попробуйте догадаться, что из представленного является интерфейсами, а что реализациями? А позже мы разберем это более подробно и я все поясню.

👩‍💻 Наш практический курс Java–разработчика

JavaStart. Подписаться
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍32🤓2👨‍💻2
Коллекции в Java. Часть 3.

И так, на картинке представлена структурная схема Java Collection Framework, которую нужно обязательно знать, что даже если вас разбудить ночью и спросить ее, вы могли рассказать. Потому что на собеседованиях Junior Java разработчика или стажера обязательно будут вопросы по этой схеме.

Iterable

Это основной, корневой интерфейс. От него наследуются все прочие. Он означает, что объект итерируемый.
Так называются сущности, элементы которых можно перечислять по очереди: по индексам, названию или расположению в структуре. То есть это практически все сложные объекты, где хранится множество значений.

Есть только одна сущность, которая не наследуется от Iterable, но тем не менее часто упоминается вместе с коллекциями и входит в Collections Framework. Это Map, и мы поговорим об этом одном из следующих постах.

Collection

Часто пишут, что Collection — это основной и самый главный интерфейс. Технически это не совсем так, потому что он все же наследуется от Iterable, но фактически считается базовым. Он описывает понятие коллекции и тем самым расширяет возможности итерируемого объекта.

При этом абстрактного объекта Collection быть не может — реальные сущности должны относиться к одному из потомков этого интерфейса, то есть быть очередью, списком или набором.

Объекты, которые относятся к коллекциям, можно перебирать в цикле for-each. У них есть ряд общих методов, актуальных для всех видов коллекций. Исключение — только Map, который в целом выпадает из этой иерархии.

На картинке сплошными стрелками показан механизм наследования, а пунктирными механизм имплементации.

Какие методы есть у реализаций и чем эти реализации отличаются друг от друга? Какие используются чаще всего? Об этом в следующих постах, чтобы не перегружать наш драгоценный мозг и разложить информацию по полочкам!

👩‍💻 Наш практический курс Java–разработчика

JavaStart. Подписаться
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4👨‍💻32🔥1
Please open Telegram to view this post
VIEW IN TELEGRAM
😁72👍2💯2