[ГАЙД] Массивы.

В этом гайде я объясню что такое массивы и как с ними работать. Начнём с основ.

Что такое массив? Массив - это, можно сказать, просто список данных. В переменной без ухищрений может хранится всего одно значение, в массиве же может хранится много переменных. Формат хранения простой, индекс — значение. Значением может выступать любая переменная, даже массив(Т.е. вы можете хранить массив в массиве. Умно, да?)
Код:
Пример:
1 — значение
2 — значение
3 — значение
4 — значение

Что такое индекс? Индекс - это этакий номер значения в массиве. То, по чему мы можем получить доступ к какому-нибудь значению. Индексы уникальны, в массиве не может быть два индекса 1 с разными значениями. А вот индексы 1 и 2 с одинаковыми значениями могут быть, так как значения, наоборот, не уникальны и могут повторяться. Счет индексов начинается с 1, 1-й элемент - 1 индекс

Переменная "Массив". В определенных случаях вместо переменной "Массив" можно использовать динамическую переменную, например если у нас первый массив лежит во втором и нам надо как-то получить доступ к первому массиву. Но лучше всего использовать всегда именно переменную "Массив" Массивы могут быть временными и постоянными, постоянный - сохраняется навсегда, допустим подойдёт для создания топов. Временный же удалится после выхода игрока из режима.

Перейдём на возможности взаимодействия с массивами

Очистить/Создать массив
— я думаю, что тут итак понятно. Ложим переменную "Массив" с любым названием и вниз ложим значения. Если такой массив с таким названием уже существует - старый массив полностью удалится. Значения можно не ложить, тогда у нас будет пустой массив.

Получить элемент массива — тоже всё просто. Ложим переменную "Массив" с нужным названием, затем ложим индекс элемента который надо получить и переменную для сохранения результата. Если у нас всего 4 элемента в массиве, а мы попытаемся получить 5-й, нам выдаст просто значение 0, так как такого элемента не существует.

Вставить в массив — лично я эту функцию не использовал ни разу(До написания этого гайда я даже не знал как она работает). Допустим, у нас есть вот такой массив
Код:
1 - maxim34a
2 - maxim34b
3 - maxim34d
И нам надо вставить значение "maxim34c" третьим индексом(Между значениями maxim34b и maxim34d). Для этого нам и нужна эта функция. Ложим используемый массив(Повторю который раз, надо использовать не динамическую переменную с названием массива, а именно переменную "Массив". И обязательно описание должно совпадать, если вы случайно сделали массив постоянным, а в других блоках он временный - где-то он не будет работать), затем индекс для вставки: в нашем случае 3(c - третья буква английского алфавита) и значение для вставки: текст "maxim34c". Вставляем и получаем такой массив:
Код:
1 - maxim34a
2 - maxim34b
3 - maxim34c
4 - maxim34d
То есть значения после индекса 3 сдвинулись на один индекс вперёд, это всё. Если ввести число больше, чем у нас элементов в массиве, то значение вставится самым последним

Заменить элемент массива — тоже простенькое действие, заменяет элемент массива. Допустим, нам в том же массиве
Код:
1 - maxim34a
2 - maxim34b
3 - maxim34d
надо заменить третье значение("maxim34d") на значение "maxim34c". Ложим переменную массива, индекс для замены и значение на которое надо заменить. Получится такой массив:
Код:
1 - maxim34a
2 - maxim34b
3 - maxim34c
Если ввести значение для замены больше, чем у нас есть элементов в массиве - выдаст ошибку(У нас 3 индекса, а мы пытаемся заменить значение по индексу 4, которого не существует)

Удалить элемент массива — опять простая функция, полностью удалить элемент из массива. После удаления значения немного сместятся, из вот такого массива:
Код:
1 - maxim34a
2 - maxim34b
3 - maxim34c
при удалении элемента по первому индексу получится такой массив:
Код:
1 - maxim34b
2 - maxim34c

Добавить элемент в конец массива — пожалуй, последняя простая функция. Добавляет указанный элемент в самый конец массива. Допустим, добавим элемент "boss" в конец этого массива:
Код:
1 - ya
2 - ochen
3 - ystal
получится такой массив
Код:
1 - ya
2 - ochen
3 - ysta
4 - boss l

Присоединить массив — это почти то же, что добавить элемент в конец массива. Теперь нам надо добавить несколько значений в конец первого массива. Можно сделать через много блоков "Добавить элемент в конец массива", но это не всегда выгодно по размеру. А можно создать второй массив с этими значениями и присоединить второй массив ко второму. Примеры:
Код:
Первый массив:
1 - первый
2 - второй
3 - третий

Второй массив:
1 - четвертый
2 - пятый

После присоединения второго массива к первому первый массив будет содержать такие значения:
1 - первый
2 - второй
3 - третий
4 - четвертый
5 - пятый

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

Получить размер массива — сохраняет количество элементов(Индексов, значений, как хотите) в переменную. Допустим, у нас 5 элементов в массиве, значит размер массива будет равен 5

Сортировать массив — достаточно полезная и интересная функция. Сортирует массив по возрастанию(Сначало маленькие числа, потом большие) и по убыванию(Сначало большие, потом маленькие. Сортирует не только числа, но и буквы(В алфавитном порядке), и юникод символы.

Вывести массив в строку — самая интересная функция(и моя любимая), как мне кажется. Итак, у нас есть массив любых значений и нам надо напечатать его в чат. Превращаем его в строку и выводим динамическую переменную:
1686988617833.png
То, что в кавычках - название. (5) - количество элементов в массиве, а дальше идут сами значения: сначало индекс(с #), потом значение. Почему первый индекс 0, если до этого я писал что отсчёт идёт с 1? В самой Jav`е отсчёт массива идёт с 0, но судя по всему, для удобства игроков сделали отсчёт от 1. Где можно применить это? Допустим, нам надо узнать, содержится ли значение "maxim34a" в массиве с никами нескольких игроков. Мы можем сделать это циклом, с каждой итерацией(проход цикла) добавлять +1 к определенному числу и использовать это число как индекс, а затем делать проверку на "Если значение равно". А можно сделать проще, вывести массив в строку и сделать через "Если текст содержит". Единственная проблема появляется в числах. Если нам надо узнать, находится ли число 5 в массиве(а его там нету) то оно будет искать число 5 среди всего текста, и если есть индекс 5 - оно определит, что такое значение существует. Как обойти это - добавлять не числа, а текст типа " 5 "(с пробелами)​
 
Последнее редактирование:

PbI6A

Новичок
Регистрация
11 Июн 2023
Сообщения
8
В этом гайде я объясню что такое массивы и как с ними работать. Начнём с основ.

Что такое массив? Массив - это, можно сказать, просто список данных. В переменной без ухищрений может хранится всего одно значение, в массиве же может хранится много переменных. Формат хранения простой, индекс — значение. Значением может выступать любая переменная, даже массив(Т.е. вы можете хранить массив в массиве. Умно, да?)
Код:
Пример:
1 — значение
2 — значение
3 — значение
4 — значение

Что такое индекс? Индекс - это этакий номер значения в массиве. То, по чему мы можем получить доступ к какому-нибудь значению. Индексы уникальны, в массиве не может быть два индекса 1 с разными значениями. А вот индексы 1 и 2 с одинаковыми значениями могут быть, так как значения, наоборот, не уникальны и могут повторяться. Счет индексов начинается с 1, 1-й элемент - 1 индекс

Переменная "Массив". В определенных случаях вместо переменной "Массив" можно использовать динамическую переменную, например если у нас первый массив лежит во втором и нам надо как-то получить доступ к первому массиву. Но лучше всего использовать всегда именно переменную "Массив" Массивы могут быть временными и постоянными, постоянный - сохраняется навсегда, допустим подойдёт для создания топов. Временный же удалится после выхода игрока из режима.

Перейдём на возможности взаимодействия с массивами

Очистить/Создать массив
— я думаю, что тут итак понятно. Ложим переменную "Массив" с любым названием и вниз ложим значения. Если такой массив с таким названием уже существует - старый массив полностью удалится. Значения можно не ложить, тогда у нас будет пустой массив.

Получить элемент массива — тоже всё просто. Ложим переменную "Массив" с нужным названием, затем ложим индекс элемента который надо получить и переменную для сохранения результата. Если у нас всего 4 элемента в массиве, а мы попытаемся получить 5-й, нам выдаст просто значение 0, так как такого элемента не существует.

Вставить в массив — лично я эту функцию не использовал ни разу(До написания этого гайда я даже не знал как она работает). Допустим, у нас есть вот такой массив
Код:
1 - maxim34a
2 - maxim34b
3 - maxim34d
И нам надо вставить значение "maxim34c" третьим индексом(Между значениями maxim34b и maxim34d). Для этого нам и нужна эта функция. Ложим используемый массив(Повторю который раз, надо использовать не динамическую переменную с названием массива, а именно переменную "Массив". И обязательно описание должно совпадать, если вы случайно сделали массив постоянным, а в других блоках он временный - где-то он не будет работать), затем индекс для вставки: в нашем случае 3(c - третья буква английского алфавита) и значение для вставки: текст "maxim34c". Вставляем и получаем такой массив:
Код:
1 - maxim34a
2 - maxim34b
3 - maxim34c
4 - maxim34d
То есть значения после индекса 3 сдвинулись на один индекс вперёд, это всё. Если ввести число больше, чем у нас элементов в массиве, то значение вставится самым последним

Заменить элемент массива — тоже простенькое действие, заменяет элемент массива. Допустим, нам в том же массиве
Код:
1 - maxim34a
2 - maxim34b
3 - maxim34d
надо заменить третье значение("maxim34d") на значение "maxim34c". Ложим переменную массива, индекс для замены и значение на которое надо заменить. Получится такой массив:
Код:
1 - maxim34a
2 - maxim34b
3 - maxim34c
Если ввести значение для замены больше, чем у нас есть элементов в массиве - выдаст ошибку(У нас 3 индекса, а мы пытаемся заменить значение по индексу 4, которого не существует)

Удалить элемент массива — опять простая функция, полностью удалить элемент из массива. После удаления значения немного сместятся, из вот такого массива:
Код:
1 - maxim34a
2 - maxim34b
3 - maxim34c
при удалении элемента по первому индексу получится такой массив:
Код:
1 - maxim34b
2 - maxim34c

Добавить элемент в конец массива — пожалуй, последняя простая функция. Добавляет указанный элемент в самый конец массива. Допустим, добавим элемент "boss" в конец этого массива:
Код:
1 - ya
2 - ochen
3 - ystal
получится такой массив
Код:
1 - ya
2 - ochen
3 - ysta
4 - boss l

Присоединить массив — это почти то же, что добавить элемент в конец массива. Теперь нам надо добавить несколько значений в конец первого массива. Можно сделать через много блоков "Добавить элемент в конец массива", но это не всегда выгодно по размеру. А можно создать второй массив с этими значениями и присоединить второй массив ко второму. Примеры:
Код:
Первый массив:
1 - первый
2 - второй
3 - третий

Второй массив:
1 - четвертый
2 - пятый

После присоединения второго массива к первому первый массив будет содержать такие значения:
1 - первый
2 - второй
3 - третий
4 - четвертый
5 - пятый

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

Получить размер массива — сохраняет количество элементов(Индексов, значений, как хотите) в переменную. Допустим, у нас 5 элементов в массиве, значит размер массива будет равен 5

Сортировать массив — достаточно полезная и интересная функция. Сортирует массив по возрастанию(Сначало маленькие числа, потом большие) и по убыванию(Сначало большие, потом маленькие. Сортирует не только числа, но и буквы(В алфавитном порядке), и юникод символы.

Вывести массив в строку — самая интересная функция(и моя любимая), как мне кажется. Итак, у нас есть массив любых значений и нам надо напечатать его в чат. Превращаем его в строку и выводим динамическую переменную:
Посмотреть вложение 1172
То, что в кавычках - название. (5) - количество элементов в массиве, а дальше идут сами значения: сначало индекс(с #), потом значение. Почему первый индекс 0, если до этого я писал что отсчёт идёт с 1? В самой Jav`е отсчёт массива идёт с 0, но судя по всему, для удобства игроков сделали отсчёт от 1. Где можно применить это? Допустим, нам надо узнать, содержится ли значение "maxim34a" в массиве с никами нескольких игроков. Мы можем сделать это циклом, с каждой итерацией(проход цикла) добавлять +1 к определенному числу и использовать это число как индекс, а затем делать проверку на "Если значение равно". А можно сделать проще, вывести массив в строку и сделать через "Если текст содержит". Единственная проблема появляется в числах. Если нам надо узнать, находится ли число 5 в массиве(а его там нету) то оно будет искать число 5 среди всего текста, и если есть индекс 5 - оно определит, что такое значение существует. Как обойти это - добавлять не числа, а текст типа " 5 "(с пробелами)​
Благодарочка, буду изучать.
 

TimePlay

Новичок
Регистрация
3 Май 2023
Сообщения
94
гайд чтобы пройтись по каждому елементу массива (ну например написать каждый елемент в чат):
-
Установить переменную (index = 0) > Получить размер массива (массив, size) > Вызвать функцию (пройтись)
-
Функция (пройтись) > Если переменная (index < size) [Прибавить переменную (index, 1) > Получить значение из массива (массив, index, text) > Написать сообщение в чат (text) > Ждать (5 тиков) > Вызвать функцию (пройтись)]
 

Mee8YT

Эксперт
Регистрация
3 Май 2023
Сообщения
299
Скопировать массив — по моему мнению, абсолютно бесполезная функция. Просто копирует все значения одного массива в другой, даже объяснять нечего
для каких-нибудь логов, или важных кодов с хранением данных можно делать копии массива, почему-бы и нет
 

SashaLab7

Эксперт
Регистрация
3 Май 2023
Сообщения
94
Ну и зачем тебе два одинаковых массива? На всякий случай?
Иногда может пригодиться для временных операций. Полезно в случае копирования массива игроку/сущности.
Функция и правда довольно бесполезная, но применение найти можно.
 

maxim34a

Участник
Регистрация
10 Июн 2023
Сообщения
540
Иногда может пригодиться для временных операций. Полезно в случае копирования массива игроку/сущности.
Функция и правда довольно бесполезная, но применение найти можно.
Очень узкое применение, как и у "Присоединить массив"
 

Mee8YT

Эксперт
Регистрация
3 Май 2023
Сообщения
299
Очень узкое применение, как и у "Присоединить массив"
теже топы, нам нужно найти топ игрока например в массиве, а в массиве ники, и нам нужен старый распорядок элементов, при этом нам нужно скопировать в другой массив нужную инфу и обработать её
 

maxim34a

Участник
Регистрация
10 Июн 2023
Сообщения
540
теже топы, нам нужно найти топ игрока например в массиве, а в массиве ники, и нам нужен старый распорядок элементов, при этом нам нужно скопировать в другой массив нужную инфу и обработать её
Так в топах же не нужно два массива с никами)0). Тебе надо два массива значений(которые делаются через сортировку, так что и тут копирование массива в пролёте), ну и плюс, что ты будешь делать со старым распорядком значений?
 

Mee8YT

Эксперт
Регистрация
3 Май 2023
Сообщения
299
Так в топах же не нужно два массива с никами)0). Тебе надо два массива значений(которые делаются через сортировку, так что и тут копирование массива в пролёте), ну и плюс, что ты будешь делать со старым распорядком значений?
это я к примеру взял, и вообще там 2 примера, и зачем вообще придирка такая...
 

maxim34a

Участник
Регистрация
10 Июн 2023
Сообщения
540
и зачем вообще придирка такая...
я душнила
это я к примеру взял, и вообще там 2 примера, и зачем вообще придирка такая...
Ну давай еще примеры. Там, где нужно чтобы были одинаковые значения в двух массивах - можно сделать добавление значений в оба массива сразу.
 

BAbyANny

Участник
Регистрация
14 Июн 2023
Сообщения
32
Полезный гайд, не для меня конечно, но для кого-то явно таковым будет являться. Ставлю класс и даю золотую монетку с циферкой 5.
 

Mepleks

Новичок
Регистрация
1 Июл 2023
Сообщения
3
В этом гайде я объясню что такое массивы и как с ними работать. Начнём с основ.

Что такое массив? Массив - это, можно сказать, просто список данных. В переменной без ухищрений может хранится всего одно значение, в массиве же может хранится много переменных. Формат хранения простой, индекс — значение. Значением может выступать любая переменная, даже массив(Т.е. вы можете хранить массив в массиве. Умно, да?)
Код:
Пример:
1 — значение
2 — значение
3 — значение
4 — значение

Что такое индекс? Индекс - это этакий номер значения в массиве. То, по чему мы можем получить доступ к какому-нибудь значению. Индексы уникальны, в массиве не может быть два индекса 1 с разными значениями. А вот индексы 1 и 2 с одинаковыми значениями могут быть, так как значения, наоборот, не уникальны и могут повторяться. Счет индексов начинается с 1, 1-й элемент - 1 индекс

Переменная "Массив". В определенных случаях вместо переменной "Массив" можно использовать динамическую переменную, например если у нас первый массив лежит во втором и нам надо как-то получить доступ к первому массиву. Но лучше всего использовать всегда именно переменную "Массив" Массивы могут быть временными и постоянными, постоянный - сохраняется навсегда, допустим подойдёт для создания топов. Временный же удалится после выхода игрока из режима.

Перейдём на возможности взаимодействия с массивами

Очистить/Создать массив
— я думаю, что тут итак понятно. Ложим переменную "Массив" с любым названием и вниз ложим значения. Если такой массив с таким названием уже существует - старый массив полностью удалится. Значения можно не ложить, тогда у нас будет пустой массив.

Получить элемент массива — тоже всё просто. Ложим переменную "Массив" с нужным названием, затем ложим индекс элемента который надо получить и переменную для сохранения результата. Если у нас всего 4 элемента в массиве, а мы попытаемся получить 5-й, нам выдаст просто значение 0, так как такого элемента не существует.

Вставить в массив — лично я эту функцию не использовал ни разу(До написания этого гайда я даже не знал как она работает). Допустим, у нас есть вот такой массив
Код:
1 - maxim34a
2 - maxim34b
3 - maxim34d
И нам надо вставить значение "maxim34c" третьим индексом(Между значениями maxim34b и maxim34d). Для этого нам и нужна эта функция. Ложим используемый массив(Повторю который раз, надо использовать не динамическую переменную с названием массива, а именно переменную "Массив". И обязательно описание должно совпадать, если вы случайно сделали массив постоянным, а в других блоках он временный - где-то он не будет работать), затем индекс для вставки: в нашем случае 3(c - третья буква английского алфавита) и значение для вставки: текст "maxim34c". Вставляем и получаем такой массив:
Код:
1 - maxim34a
2 - maxim34b
3 - maxim34c
4 - maxim34d
То есть значения после индекса 3 сдвинулись на один индекс вперёд, это всё. Если ввести число больше, чем у нас элементов в массиве, то значение вставится самым последним

Заменить элемент массива — тоже простенькое действие, заменяет элемент массива. Допустим, нам в том же массиве
Код:
1 - maxim34a
2 - maxim34b
3 - maxim34d
надо заменить третье значение("maxim34d") на значение "maxim34c". Ложим переменную массива, индекс для замены и значение на которое надо заменить. Получится такой массив:
Код:
1 - maxim34a
2 - maxim34b
3 - maxim34c
Если ввести значение для замены больше, чем у нас есть элементов в массиве - выдаст ошибку(У нас 3 индекса, а мы пытаемся заменить значение по индексу 4, которого не существует)

Удалить элемент массива — опять простая функция, полностью удалить элемент из массива. После удаления значения немного сместятся, из вот такого массива:
Код:
1 - maxim34a
2 - maxim34b
3 - maxim34c
при удалении элемента по первому индексу получится такой массив:
Код:
1 - maxim34b
2 - maxim34c

Добавить элемент в конец массива — пожалуй, последняя простая функция. Добавляет указанный элемент в самый конец массива. Допустим, добавим элемент "boss" в конец этого массива:
Код:
1 - ya
2 - ochen
3 - ystal
получится такой массив
Код:
1 - ya
2 - ochen
3 - ysta
4 - boss l

Присоединить массив — это почти то же, что добавить элемент в конец массива. Теперь нам надо добавить несколько значений в конец первого массива. Можно сделать через много блоков "Добавить элемент в конец массива", но это не всегда выгодно по размеру. А можно создать второй массив с этими значениями и присоединить второй массив ко второму. Примеры:
Код:
Первый массив:
1 - первый
2 - второй
3 - третий

Второй массив:
1 - четвертый
2 - пятый

После присоединения второго массива к первому первый массив будет содержать такие значения:
1 - первый
2 - второй
3 - третий
4 - четвертый
5 - пятый

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

Получить размер массива — сохраняет количество элементов(Индексов, значений, как хотите) в переменную. Допустим, у нас 5 элементов в массиве, значит размер массива будет равен 5

Сортировать массив — достаточно полезная и интересная функция. Сортирует массив по возрастанию(Сначало маленькие числа, потом большие) и по убыванию(Сначало большие, потом маленькие. Сортирует не только числа, но и буквы(В алфавитном порядке), и юникод символы.

Вывести массив в строку — самая интересная функция(и моя любимая), как мне кажется. Итак, у нас есть массив любых значений и нам надо напечатать его в чат. Превращаем его в строку и выводим динамическую переменную:
Посмотреть вложение 1172
То, что в кавычках - название. (5) - количество элементов в массиве, а дальше идут сами значения: сначало индекс(с #), потом значение. Почему первый индекс 0, если до этого я писал что отсчёт идёт с 1? В самой Jav`е отсчёт массива идёт с 0, но судя по всему, для удобства игроков сделали отсчёт от 1. Где можно применить это? Допустим, нам надо узнать, содержится ли значение "maxim34a" в массиве с никами нескольких игроков. Мы можем сделать это циклом, с каждой итерацией(проход цикла) добавлять +1 к определенному числу и использовать это число как индекс, а затем делать проверку на "Если значение равно". А можно сделать проще, вывести массив в строку и сделать через "Если текст содержит". Единственная проблема появляется в числах. Если нам надо узнать, находится ли число 5 в массиве(а его там нету) то оно будет искать число 5 среди всего текста, и если есть индекс 5 - оно определит, что такое значение существует. Как обойти это - добавлять не числа, а текст типа " 5 "(с пробелами)​
Хороший гайд, я в 2 функции сделал
 

Фанни

Эксперт
Регистрация
3 Май 2023
Сообщения
120
чтобы сервер не умер от нагрузки
Так тут как раз прикол в том, что если это будет использоваться в игре (например в мафии: в конце игры выводится список игроков и их роли), то мы вместо вывода 20 (или 10 я чета) значений в секунду, будем получать только 4
Никому же не хочется ждать миллиард времени, чтобы этот список наконец то до конца дошел
 
Сверху