Запись цифр числа в массив
Что-то я не вижу единицы, двойки и шестерки, которые должны получиться при 10 — N[i] . Не говоря уже от том, как это все разломается, когда среди цифр исходного числа будет 0 .
– user176262
12 дек 2019 в 21:16
Создать массив и добавлять туда по числу.
12 дек 2019 в 21:26
3 ответа 3
Сортировка: Сброс на вариант по умолчанию
int n = 348597; int[] arr = IntStream // начинаем с 'n', каждое последующее число - // это текущее число, делённое на 10 // получаем [348597, 34859, 3485, 348, 34, 3] .iterate(n, i -> i / 10 > 0 || i % 10 > 0, i -> i / 10) // получаем последнюю цифру .map(i -> i % 10) // собираем в массив .toArray(); // выводим массив System.out.println(Arrays.toString(arr)); // [7, 9, 5, 8, 4, 3]
Отслеживать
ответ дан 8 дек 2020 в 17:17
user420034 user420034
public static void main(String[] args) < int[] arr = new int[6]; int number = 348597; for (int i = 0; i < 6; ++i) < arr[i] += number % 10; number /= 10; >for (int i : arr) < System.out.print(i); >System.out.println(); System.out.println(arr[0]); System.out.println(arr[5]); >
Отслеживать
ответ дан 12 дек 2019 в 23:03
38 4 4 бронзовых знака
зачем вы привязываетесь в цикле к константе «6»? попахивает жестким кодированием.
13 дек 2019 в 6:15
Можно было бы получать значения с клавиатуры, написать класс и функции, но зачем? Это скорее всего учебная задача. Пусть допишет arr.length или передает аргументом количество.
13 дек 2019 в 9:36
нет, не в этом дело. у вас должен быть метод, который в параметрах принимает число , а возвращает массив его чисел с реверсом.
13 дек 2019 в 9:39
Вы сейчас серьезно? Человек не способен создать функцию и вернуть массив? Уже все готово, осталось подставить нужное число в number через агрумент функции и вернуть массив.
Как добавить число в массив java
Значения массиву можно присваивать различными способами.
Используя индексацию: можно присвоить значение конкретному элементу массива, указав его индекс в квадратных скобках. Например:
int[] arr = new int[3]; arr[0] = 1; arr[1] = 2; arr[2] = 3;
Используя инициализацию: можно создать массив с заранее заданными значениями, разделяя их запятыми в фигурных скобках:
int[] arr = 1, 2, 3>;
Используя циклы: можно заполнить массив значениями, используя циклы:
int[] arr = new int[3]; for (int i = 0; i arr.length; i++) arr[i] = i + 1; >
Здесь мы создаем массив arr длиной 3 и заполняем его значениями от 1 до 3, используя цикл for
Используя методы класса Arrays : класс Arrays в Java предоставляет ряд методов для работы с массивами, в том числе для заполнения массива значениями:
int[] arr = new int[3]; Arrays.fill(arr, 1);
Здесь мы создаем массив arr длиной 3 и заполняем его значениями 1, используя метод fill из класса Arrays
Какой способ выбрать зависит от вашей задачи и предпочтений в программировании.
Массивы в Java: создаём, заполняем, применяем
Учимся работать с массивами в Java. Всё разбираем на примерах.



Артём Авдеев
Java-разработчик, преподаёт в Skillbox, осваивает машинное обучение.
Массив в Java (Java Array) — это структура данных, которая хранит набор пронумерованных значений одного типа (элементы массива).
Допустим, у нас есть класс из десяти учеников и нам нужно сохранить их оценки. Для этого можно создать десять переменных:
int mark1 = 4; int mark2 = 3; int mark3 = 5; int mark4 = 3; int mark5 = 2; int mark6 = 4; int mark7 = 4; int mark8 = 3; int mark9 = 4; int mark10 = 2;
А если в нашем классе будет не десяток учеников, а в десять раз больше, не заводить же нам 100 переменных! На выручку приходят массивы.
Как создать одномерный массив
В Java массив объявляется с помощью квадратных скобок и специального слова new.
Такой вот синтаксис пришёл из языка C:
тип_массива название_переменной[] = new тип_массива[размер_массива];
Но в Java предпочтительнее делать так:
тип_массива[] название_переменной = new тип_массива[размер_массива];
Тип массива может быть любым (int, Integer, String, Date, byte, char, Long и так далее).
Инициализация массива по умолчанию
Объявим массив типа int из 10 элементов:
int[] marks = new int[10];
При подобной инициализации все элементы массива будут иметь значение по умолчанию. Для int это 0; для float и double — 0.0; для char — \0; для boolean — false, а для String и любого другого класса это null.
В Java размер массива (длина, протяжённость) определяется при объявлении, а изменить его можно только пересоздав массив.
Доступ к элементам массива
Начнём с одномерного массива. Каждый элемент в нём хранится под своим индексом.
Важно помнить, что в Java нумерация элементов массива начинается с 0. Поэтому индекс первого элемента равен 0, а у последнего определяется размером массива минус один.
Для доступа к элементу массива указывают имя массива и номер ячейки в квадратных скобках. Например, обратимся к первому элементу массива и выведем его значение:
int[] marks = new int[10]; System.out.println(marks[0]); --OUTPUT> 0
В консоли мы получим число 0. Почему ноль — читайте выше, в пункте про инициализацию по умолчанию.
Заполним элементы массива. Для этого обратимся к каждому по индексу и присвоим значения с помощью оператора «=»:
int[] marks = new int[10]; marks[0] = 5; marks[1] = 3; marks[2] = 5; marks[3] = 3; marks[4] = 4; marks[5] = 4; marks[6] = 3; marks[7] = 2; marks[8] = 5; marks[9] = 4;
Инициализация массива на этапе объявления
Теперь у нас есть массив, куда мы записали оценки десяти учеников. С этим уже удобнее работать, чем объявлять 10 переменных, но можно записать ещё короче:
int[] marks = new int[] 5, 3, 5, 3, 4, 4, 3, 2, 5, 4>;
Мы опустили размер массива, поставили фигурные скобки после квадратных и перечислили все значения через запятую. Размер массива теперь определяется числом элементов в фигурных скобках (в нашем случае их тоже 10).
Но нет предела совершенству:
int[] marks = 5, 3, 5, 3, 4, 4, 3, 2, 5, 4>;
После знака «=» остались только фигурные скобки с перечислением значений через запятую.
Обход одномерного массива
У массива в Java есть специальное поле length. Значение в нём нельзя изменить. Оно возвращает число элементов массива:
int[] marks = 5, 3, 5, 3, 4, 4, 3, 2, 5, 4>; System.out.println("Всего оценок: " + marks.length); --OUTPUT> Всего оценок: 10
А раз мы знаем длину массива и что все его ячейки упорядочены, то остаётся обратиться к ним по очереди — в цикле:
int[] marks = 5, 3, 5, 3, 4, 4, 3, 2, 5, 4>; for (int i = 0; i < marks.length; i++) < System.out.printf("Ученик №%d: оценка %d%n", (i + 1), marks[i]); > --OUTPUT> Ученик №1: оценка 5 --OUTPUT> Ученик №2: оценка 3 --OUTPUT> Ученик №3: оценка 5 --OUTPUT> Ученик №4: оценка 3 --OUTPUT> Ученик №5: оценка 4 --OUTPUT> Ученик №6: оценка 4 --OUTPUT> Ученик №7: оценка 3 --OUTPUT> Ученик №8: оценка 2 --OUTPUT> Ученик №9: оценка 5 --OUTPUT> Ученик №10: оценка 4
С помощью счётчика в цикле for мы получаем индекс каждого элемента.
Напомним! Счётчик должен стартовать с 0, так как нумерация в массиве тоже начинается с 0.
И цикл будет продолжаться «пока счётчик меньше размера массива», а раз индекс последнего элемента на один меньше их количества, то выхода за границы массива в нашем цикле не произойдёт.
int[] marks = 5, 3, 4>; String[] names = "Вася", "Петя", "Маша">; for (int i = 0; i < marks.length; i++) < System.out.printf("%s получает оценку %d%n", names[i], marks[i]); > --OUTPUT> Вася получает оценку 5 --OUTPUT> Петя получает оценку 3 --OUTPUT> Маша получает оценку 5
Массив можно обойти и в цикле foreach (подробнее о циклах):
int[] marks = 5, 3, 5, 3, 4, 4, 3, 2, 5, 4>; for (int mark : marks) < System.out.printf("Оценка %d%n", mark); > --OUTPUT> Оценка 5 --OUTPUT> Оценка 3 --OUTPUT> Оценка 5 --OUTPUT> Оценка 3 --OUTPUT> Оценка 4 --OUTPUT> Оценка 4 --OUTPUT> Оценка 3 --OUTPUT> Оценка 2 --OUTPUT> Оценка 5 --OUTPUT> Оценка 4
И в обратном порядке:
int[] marks = 5, 3, 5, 3, 4, 4, 3, 2, 5, 4>; for (int i = marks.length - 1; i >= 0; i--) < System.out.printf("Ученик №%d: оценка %d%n", (i + 1), marks[i]); >
Здесь счётчик стартует со значения на один меньше размера массива, и цикл продолжается «пока счётчик не меньше 0».
Можем пройтись и только по элементам с чётными индексами:
int[] marks = 5, 3, 5, 3, 4, 4, 3, 2, 5, 4>; for (int i = 0; i < marks.length; i += 2) < System.out.printf("Ученик №%d: оценка %d%n", (i + 1), marks[i]); >
А вот как заполнить массив случайными значениями:
int[] marks = new int[10]; Random random = new Random(); for (int i = 0; i < marks.length; i ++) < marks[i] = 2 + random.nextInt(4); >
N-мерные массивы
Размерность массива определяется тем, сколько индексов нужно, чтобы однозначно указать на элемент в массиве.
Массивы бывают одномерными (векторы), двумерными (матрицы), трёхмерными и так далее. То есть можно создавать не просто массивы, но и массивы массивов, а также массивы массивов массивов и так далее.
Рассмотрим вариант с двумерным массивом. Остальные многомерные массивы создаются похоже.
Объявление двумерного массива
Чтобы создать двумерный массив в Java, укажем его размеры в квадратных скобках:
int[][] mas = new int[3][4];
Доступ к элементу подобного массива выглядит так:
int[][] mas = new int[3][4]; mas[0][1] = 2;
Мы присвоили значение 2 элементу с индексами [0,1].
Для простоты представим двумерный массив в виде таблицы. Вот как выглядит наш массив (столбцы — это первый индекс в квадратных скобках, а строки — второй):
| [0,0] = 0 | [1,0] = 0 | [2,0] = 0 |
|---|---|---|
| [0,1] = 2 | [1,1] = 0 | [2,1] = 0 |
| [0,2] = 0 | [1,2] = 0 | [2,2] = 0 |
| [0,3] = 0 | [1,3] = 0 | [2,3] = 0 |
Несложно представить двумерный массив таблицей, а трёхмерный — кубом, но вот с массивами большей размерности так уже не получится.
Массивы внутри массива в Java могут быть разной длины. Зададим двумерный массив, где размер третьего массива (по индексу второго) равен двум элементам, а размер всех остальных — трём:
int[][] mas2 = 1, 3, 5>, 1, 3, 4>, 1, 3>>;
Как помним, размер массива нам не изменить, но мы можем присвоить новый массив элементу с нужным индексом.
Если мы объявляем двумерный массив так:
int[][] mas = new int[3][4];
то размер каждого вложенного массива будет равен четырём элементам.
А теперь заменим массив под индексом 1 (длиной в четыре элемента) массивом из двух элементов:
int[][] mas = new int[3][4]; mas[1] = new int[2];
Как видно из примера, мы можем обращаться к внутренним массивам нашего двумерного массива, а не только к значениям в этих массивах.
Проверим, что размер массива под индексом 1 теперь равен двум элементам. Для этого используем цикл с выводом в консоль:
for (int i = 0; i < mas.length; i++) < System.out.printf("Индекс массива в двумерном массиве: %d; длина массива: %d%n", i, mas[i].length); > --OUTPUT> Индекс массива в двумерном массиве: 0; длина массива: 4 --OUTPUT> Индекс массива в двумерном массиве: 1; длина массива: 2 --OUTPUT> Индекс массива в двумерном массиве: 2; длина массива: 4
Для обхода элементов двумерного массива применяем уже два цикла:
Как добавить число в массив java
Я правильно понимаю — что если я массиву Б присвою массив А (В=А). То присвою просто ссылку на А. Ссылку на В потеряю и начальное содержимое В — будет очищено потом при очистке мусора? int[] A = new int[3] <1,2,3>; int[] B = new int[3] ; B=A; // содержимое В потеряно A[1]=5; // в A[1] и B[1] теперь значение 5 A=null; //теперь ссылка на массив А только в Б?1,2,3>
Anatoly Уровень 24
22 апреля 2023
Теперь все встало на свои места
Vladimir Уровень 14
12 апреля 2023
Хороший материал, спасибо автору! Единственный момент, на мой взгляд, лучше отобразить импорт класса Arrays, чтобы было понятно откуда методы по классу Arrays берутся.
Ислам Уровень 32
12 апреля 2023
отличная лекция, которая дает больше понимания о массивах в Java
Кирилл Загурный Уровень 28 Expert
12 апреля 2023
Отличный материал на закрепление темы массивов. Спасибо!
13 марта 2023
Автору спасибо, полезный и понятный материал!
Сообщество
JavaRush — это интерактивный онлайн-курс по изучению Java-программирования c нуля. Он содержит 1200 практических задач с проверкой решения в один клик, необходимый минимум теории по основам Java и мотивирующие фишки, которые помогут пройти курс до конца: игры, опросы, интересные проекты и статьи об эффективном обучении и карьере Java‑девелопера.
Подписывайтесь
Язык интерфейса
«Программистами не рождаются» © 2024 JavaRush
Скачивайте наши приложения
«Программистами не рождаются» © 2024 JavaRush
Этот веб-сайт использует данные cookie, чтобы настроить персонально под вас работу сервиса. Используя веб-сайт, вы даете согласие на применение данных cookie. Больше подробностей — в нашем Пользовательском соглашении.