- Массивы
- Содержание
- Объявление массива
- Пример
- Создание массива
- Пример
- Работа с массивами
- Пример
- Цикл foreach
- Пример
- Передача массива в метод
- Возврат массива из метода
- Методы для массива
- Пример 1: создание, объявление переменных, определение (выделение памяти) и инициализация массива
- Пример 2: длина массива
- Пример 3: максимальный элемент массива
- Пример 4: минимальный элемент массива
- Пример 5: сумма массива
- Пример 6: вывод массива
- Пример 7: вывод четных и нечетных элементов массива
- Пример 8: вывод элементов массива с четным и нечетным индексом
- Вывод нечётных элементов массива через запятую Java
- 7 ответов 7
- Выведите все элементы массива с четными индексами
- Вывести элементы массива с четными/нечетными индексами
- Массивы
- Упражнения
- A: Четные индексы
- B: Четные элементы
- C: Количество положительных
- D: Больше предыдущего
- E: Соседи одного знака
- F: Больше своих соседей
- G: Наибольший элемент
- H: Наименьший положительный
- I: Наименьший нечетный
- J: Шеренга
- K: Количество различных элементов
- L: Вывести в обратном порядке
- M: Переставить в обратном порядке
- N: Переставить соседние
- O: Циклический сдвиг вправо
- P: Переставить min и max
- Q: Удалить элемент
- R: Вставить элемент
- S: Количество совпадающих пар
- T: Уникальные элементы
- U: Количество различных элементов — 2
- V: Самое частое число
- W: Сжатие массива
- X: Кегельбан
- Y: Ферзи
- Z: Большой сдвиг
Массивы
Содержание
Массивы в Java — это структура данных, которая хранит упорядоченные коллекции фиксированного размера элементов нужного типа. В Java массив используется для хранения коллекции данных, но часто бывает полезно думать о массиве как о совокупности переменных одного типа.
Вместо объявления отдельных переменных, таких как number0, number1, . и number99, Вы объявляете одну переменную массива, например, numbers и используете numbers[0], numbers[1], . и numbers[99], для отображения отдельных переменных.
Данная статья ознакомит Вас как в Java объявить массив переменных, создать и обрабатывать массив с помощью индексированных переменных.
Объявление массива
Чтобы использовать массив в программе, необходимо объявить переменную для ссылки на массив, и Вы должны указать тип массива, который может ссылаться на переменную. Синтаксис для объявления переменной массива:
Примечание: стиль dataType[] arrayRefVar является предпочтительным. Стиль dataType arrayRefVar[] происходит из языка C/C++ и был принят в Java для C/C++-программистов.
Пример
Следующие фрагменты кода примеры использования данного синтаксиса:
Создание массива
В Java создать массив можно с помощью оператора new с помощью следующего синтаксиса:
Вышеуказанное объявление делает две вещи:
- Создает массив, используя new dataType[arraySize];
- Ссылка на недавно созданный массив присваивается переменной arrayRefVar.
Объявление переменной, создание и присвоение переменной ссылки массива могут быть объединены в одном операторе, как показано ниже:
В качестве альтернативы массивы в Java можно создавать следующим образом:
Элементы массива доступны через индекс. Отсчет индексов ведется от 0; то есть они начинают от 0 и до arrayRefVar.length-1.
Пример
Следующий оператор объявляет массив переменных myList, создает массив из 10 элементов типа double и присваивает ссылку myList:
Изображение отображает массив myList. Здесь myList имеет десять значений double и индексы от 0 до 9.
Работа с массивами
При работе с элементами массива, часто используют цикл for или цикл foreach потому, что все элементы имеют одинаковый тип и известный размер.
Пример
Полный пример, показывающий, как создавать, инициализировать и обработать массив:
Получим следующий результат:
Цикл foreach
JDK 1.5 представила новый цикл for, известный как цикл foreach или расширенный цикл for, который позволяет последовательно пройти весь массив без использования индекса переменной.
Пример
Следующий код отображает все элементы в массиве myList:
Получим следующий результат:
Передача массива в метод
Также как можно передать значение примитивного типа в метод, можно также передать массив в метод. Например, следующий метод отображает элементы в int массиве:
Его можно вызвать путем передачи массива. Например, следующий оператор вызывает метод printArray для отображения 3, 1, 2, 6, 4 и 2:
Возврат массива из метода
Метод может также возвращать массив. Например, метод, показанный ниже, возвращает массив, который является реверсирование другого массива:
Методы для массива
Класс java.util.Arrays содержит различные статические методы для поиска, сортировки, сравнения и заполнения элементов массива. Методы перегружаются для всех примитивных типов.
№ | Описание |
1 | public static int binarySearch(Object[] a, Object key) Ищет заданный массив объектов (byte, int, double, и т.д.) для указанного значения, используя алгоритм двоичного поиска. Массив должен быть отсортирован до выполнения этого вызова. Это возвращает индекс ключа поиска, если он содержится в списке; в противном случае (-(точка вставки + 1). |
2 | public static boolean equals(long[] a, long[] a2) Возвращает значение true, если два указанных массивах равны друг другу. Два массива считаются равными, если оба массива содержат одинаковое количество элементов, и все соответствующие пары элементов в двух массивах равны. Такой же метод может быть использован всеми другими примитивными типами данных (byte, short, int и т.д.). |
3 | public static void fill(int[] a, int val) Присваивает определенное значение int к каждому элементу указанного целочисленного массива. Такой же метод может быть использован всеми другими примитивными типами данных (byte, short, int и т.д.). |
4 | public static void sort(Object[] a) Этот метод сортировки сортирует указанный массив объектов в порядке возрастания, в соответствии с естественным порядком его элементов. Такой же метод может быть использован всеми другими примитивными типами данных (byte, short, int и т.д.). |
Пример 1: создание, объявление переменных, определение (выделение памяти) и инициализация массива
В качестве примера возьмем тип данных int. Вы же можете использовать любой другой тип данных.
Пример 2: длина массива
Узнать размер массива в Java можно с помощью метода length(). Данный метод позволяет определить размерность массива.
Получим следующий результат:
Пример 3: максимальный элемент массива
Простые способы для того, чтобы найти максимальное число в массиве в Java. Сперва воспользуемся методом Math.max().
Получим следующий результат:
Ещё один пример нахождения максимального числа в массиве в Java. Здесь мы не будем использовать какие-либо методы.
Получим следующий результат:
Пример 4: минимальный элемент массива
Написанный ниже код практически ничем не отличается от кода, описанного в примере 3. Он в точности наоборот, просто здесь мы ищем минимальное число в массиве в Java. В первом способе воспользуемся методом Math.min().
Получим следующий результат:
Ещё один пример нахождения максимального числа в массиве в Java. Здесь мы не будем использовать какие-либо методы.
Получим следующий результат:
Пример 5: сумма массива
В этом примере рассмотрим как получить сумму элементов массива в Java.
Получим следующий результат:
А в этом примере используем улучшенный цикл for, чтобы найти сумму массива.
Получим следующий результат:
Пример 6: вывод массива
В данном примере рассмотрим как вывести массив на экран в Java.
Получим следующий результат:
Пример 7: вывод четных и нечетных элементов массива
В примере показано как вывести четные и нечетных элементы массива в Java.
Получим следующий результат:
Пример 8: вывод элементов массива с четным и нечетным индексом
В примере показано как вывести на экран элементы массива с четным и нечетным индексом.
Получим следующий результат:
Источник
Вывод нечётных элементов массива через запятую Java
помогите, пожалуйста, разобраться : есть метод printOddNumbers, который принимает массив и выводит в консоль только нечетные числа из него, через запятую. Конец вывода должен перевести курсор на новую строку.
Пример ввода: [3,5,20,8,7,3,100]
Пример вывода: 3,5,7,3
У меня на выходе получается : 3,5,7,3,
То есть мне нужно убрать последнюю запятую.
Помогите, пожалуйста, как можно убрать запятую в конце?
Также у меня не работает этот код в случае если элементы массива отрицательные. Помогите, пожалуйста, найти баг. Заранее спасибо.
Ссылка на онлайн-компилятор с кодом:
7 ответов 7
Помогите, пожалуйста, как можно убрать запятую в конце?
А зачем вы ее добавляете?
для каждого элемента в конце добавляется запятая. Тут есть три решения
После цикла удалять из StringBuilder последнюю запятую
Добавлять запятую перед элементом для всех, кроме первого
не работает этот код в случае если элементы массива отрицательные
Потому, что остаток от деления отрицательного нечетного числа на 2 будет -1 . Поэтому если проверку на нечетность переписать вот так
то код будет работать как с положительными, так и с отрицательными числами
Кроме того, при таком цикле
вы будете пропускать последний элемент массива. Цикл должен быть таким
Источник
Выведите все элементы массива с четными индексами
Выведите все элементы массива с четными индексами (то есть A[0], A[2], A[4], . ).
Формат входных данных
В первой строке вводится количество элементов в массиве. Во второй строке вводятся элементы массива.
Формат выходных данных
Выведите ответ на задачу.
Sample Input:
5
1 2 3 4 5
Sample Output:
1 3 5
В коде где ошибка?
Помощь в написании контрольных, курсовых и дипломных работ здесь.
Удалить все элементы массива с четными индексами
Всем привет. Хотелось бы получить от вас помощь..написать программу си++.. создать динамический.
Выведите все элементы массива с четными номерами
Дан массив целых чисел. Нумерация элементов начинается с 0. Выведите все элементы массива с четными.
Найти min среди элементов массива с четными индексами, все элементы до него расместить в памяти динамически
Дан массив A размера N. Найти минимальный элемент из его элементов с четными номерами: A2, A4, A6.
Вывести элементы массива с четными индексами
В первой строке вводится количество элементов в массиве. Во второй строке вводятся элементы.
Источник
Вывести элементы массива с четными/нечетными индексами
Помощь в написании контрольных, курсовых и дипломных работ здесь.
Вывести сначала элементы массива с четными индексами, а потом — с нечетными
Дан массив A размера N. Вывести вначале его элементы с четными номерами (в порядке возрастания.
Увеличить элементы массива с четными индексами на 1, а с нечетными — на 2
Доброго всем времени суток! Возникли затруднения с парой задач на массивы. 1. В одномерном.
Поменять местами элементы массива с четными и нечетными индексами
//Дан массив целых чисел. Воспользовавшись указателями, //поменяйте местами элементы массива с.
Поменять местами элементы массива с четными и нечетными индексами (через указатели)
Вот задача: Дан массив целых чисел. Воспользовавшись указателями, поменяйте местами элементы.
Добавлено через 22 секунды
Поменять местами элементы массива с четными и нечетными индексами (использовать указатели)
В массиве поменять местами элементы с четными и нечетными индексами. Использовать указатели.
Воспользовавшись указателями, поменяйте местами элементы массива с четными и нечетными индексами
Решить задачи через Указатели. 3. Дан массив целых чисел. Воспользовавшись указателями.
Поменять местами элементы массива с четными и нечетными индексами используя указатели
Поменять местами элементы массива с четными и нечетными индексами используя указатели Ну вот не.
Построчно отсортировать отдельно элементы с чётными индексами по убыванию, с нечётными индексами — по возрастанию
Дан двумерный массив. Значения элементов ввести с клавиатуры. Построчно отсортировать отдельно.
Источник
Массивы
Часто возникает необходимость хранить не одну переменную, а набор однотипных переменных. Например, список учащихся класса – это набор данных строкового типа, координаты вершин многоугольника или коэффициенты многочлена – это набор числовых данных. Для хранения наборов данных используются структуры данных. Основная структура данных – это массив.
— это структура однотипных данных, занимающих непрерывную область памяти. Массив имеет размер — количество элементов в нем. Каждый элемент массива имеет свой номер (также называемый ), обращение к элементу массива осуществляется путем указания его индекса. В языке C++ элементы нумеруются начиная с 0, поэтому последний элемент массива имеет номер на 1 меньше размера массива.
Массив в языке C++ задается следующим образом:
где тип_элементов — произвольный тип данных языка C++, который будут иметь элементы массива, например, int , double и т.д.; идентификатор — имя массива, размер — число элементов в нем.
По стандарту языков C и C++, размер массива должен быть константой, определенной на момент компиляции программы, то есть можно определить массив в виде int A[10 + 5] , но нельзя это сделать в виде int A[n] . Однако, компилятор gcc, которым мы пользуемся, допускает объявления второго вида, но при этом нет никаких гарантий, что ваша программа будет откомпилирована каким-либо другим компилятором.
К элементу массива можно обращаться, как идентификатор [ индекс ] . Например, если было сделано объявление
то таким образом создается 5 элементов массива типа double : A[0] , A[1] , A[2] , A[3] , A[4] .
Пример программы, которая создает массив типа int[] , заданного пользователем размера, считывает с клавиатуры его элементы, затем прибавляет к каждому элементу массива число 1 , затем выводит результат на экран:
В этом примере при помощи // обозначается начало комментария, весь текст после начала комментария и до конца строки компилятором игнорируется. Второй способ объявления комментария: в начале комментария поставить знаки /* , а в конце – */ . Это позволяет делать комментарии, занимающие несколько строк. В языке C допустимы только такие комментарии. ::min()>@w< >— минимальное значение типа @code
Упражнения
Во всех задачах этого листка (кроме X и Y) небходимо что-то сделать с заданным массивом. Массив вводится, как в примере выше: сначала размер массива, затем его элементы. Программа должна считать массив целиком, выполнить то, что требуется сделать с массивом, вывести результат на экран. Даже если для решения задачи массив не требуется, программа всё равно должна целиком считать массив и сохранить его в памяти.
Все массивы – числовые типа int[] .
A: Четные индексы
Выведите все элементы массива с четными индексами (то есть A[0] , A[2] , A[4] , . ).
Программа должна быть эффективной и не выполнять лишних действий!
Ввод | Вывод |
---|
B: Четные элементы
Выведите все четные элементы массива.
Ввод | Вывод |
---|
C: Количество положительных
Найдите количество положительных элементов в данном массиве.
Ввод | Вывод |
---|
D: Больше предыдущего
Дан массив. Выведите все элементы массива, которые больше предыдущего элемента.
Ввод | Вывод |
---|
E: Соседи одного знака
Дан массив. Если в нем есть два соседних элемента одного знака, выведите эти числа. Если соседних элементов одного знака нет — не выводите ничего. Если таких пар соседей несколько — выведите первую пару.
Ввод | Вывод |
---|
F: Больше своих соседей
Дан массив. Определите, сколько в этом массиве элементов, которые больше двух своих соседей и выведите количество таких элементов.
Ввод | Вывод |
---|
G: Наибольший элемент
Выведите значение наибольшего элемента в массиве
Ввод | Вывод |
---|
H: Наименьший положительный
Выведите значение наименьшего из всех положительных элементов в массиве. Известно, что в массиве есть хотя бы один положительный элемент, а значения всех элементов массива по модулю не превосходят 1000.
Ввод | Вывод |
---|
I: Наименьший нечетный
Выведите значение наименьшего нечетного элемента массива, а если в массиве нет нечетных элементов — выведите число 0 .
Ввод | Вывод |
---|
J: Шеренга
Петя перешёл в другую школу. На уроке физкультуры ему понадобилось определить своё место в строю. Помогите ему это сделать.
Программа получает на вход число N – количество человек в классе. Затем невозрастающая последовательность из N чисел, означающих рост каждого человека в строю. После этого вводится число X – рост Пети. Все числа во входных данных натуральные и не превышают 200.
Выведите номер, под которым Петя должен встать в строй. Если в строю есть люди с одинаковым ростом, таким же, как у Пети, то он должен встать после них.
Ввод | Вывод |
---|
K: Количество различных элементов
Дан массив, упорядоченный по неубыванию элементов в нем. Определите, сколько в нем различных элементов.
Ввод | Вывод |
---|
L: Вывести в обратном порядке
Выведите элементы данного массива в обратном порядке, не изменяя сам массив.
Ввод | Вывод |
---|
M: Переставить в обратном порядке
Переставьте элементы данного массива в обратном порядке, затем выведите элементы данного массива.
Эта задача отличается от предыдущей тем, что вам нужно изменить значения элементов самого массива, поменяв местами A[0] c A[n-1] , A[1] с A[n-2] , а затем вывести элементы массива, начиная с A[0] .
Ввод | Вывод |
---|
N: Переставить соседние
Переставьте соседние элементы массива ( A[0] c A[1] , A[2] c A[3] и т.д.). Если элементов нечетное число, то последний элемент остается на своем месте.
Ввод | Вывод |
---|
O: Циклический сдвиг вправо
Циклически сдвиньте элементы массива вправо ( A[0] переходит на место A[1] , A[1] на место A[2] , . последний элемент переходит на место A[0] ).
Используйте минимально возможное количество операций присваивания.
Ввод | Вывод |
---|
P: Переставить min и max
В массиве все элементы различны. Поменяйте местами минимальный и максимальный элемент этого массива.
Ввод | Вывод |
---|
Q: Удалить элемент
Дан массив из N элементов и номер элемента в массиве k. Удалите из массива элемент с индексом k, сдвинув влево все элементы, стоящие правее элемента с индексом k.
Программа получает на вход число N, затем N элементов массива, затем число k.
Программа должна вывести N-1 число – элементы массива после удаления k–го элемента.
Программа должна осуществлять сдвиг непосредственно в массиве, а не делать это при выводе элементов. Также нельзя использовать дополнительный массив.
Ввод | Вывод |
---|
R: Вставить элемент
Дан массив из N чисел, число k и значение C. Необходимо вставить в массив на позицию с индексом k элемент, равный C, сдвинув все элементы имевшие индекс не менее k вправо.
Посколько при этом количество элементов в массиве увеличивается, необходимо сразу же создавать массив размером N+1.
Вставку необходимо осуществлять уже в считанном массиве, не оставляя “свободного” места при считывании, не делая этого при выводе и не создавая дополнительного массива.
Ввод | Вывод |
---|
S: Количество совпадающих пар
Дан массив. Посчитайте, сколько в нем пар элементов, равных друг другу. Считается, что любые два элемента, равные друг другу образуют одну пару, которую необходимо посчитать.
Ввод | Вывод |
---|
T: Уникальные элементы
Дан массив. Выведите те его элементы, которые встречаются в массиве только один раз. Элементы нужно выводить в том порядке, в котором они встречаются в массиве.
Ввод | Вывод |
---|
U: Количество различных элементов — 2
Дан массив. Посчитайте, сколько в нем различных элементов, не изменяя самого массива.
Ввод | Вывод |
---|
V: Самое частое число
Дан массив. Не изменяя массива и не заводя дополнительного массива определите, какое число в этом массиве встречается чаще всего.
Если таких чисел несколько, выведите любое из них.
Ввод | Вывод |
---|
W: Сжатие массива
Массив заполнен целыми числами. Требуется “сжать” его, переместив все ненулевые элементы в левую часть массива, не меняя их порядок, а все нули — в правую часть. Порядок ненулевых элементов изменять нельзя, дополнительный массив использовать нельзя, задачу нужно выполнить за один проход по массиву. Распечатайте полученный массив.
Ввод | Вывод |
---|
X: Кегельбан
\(N\) кеглей выставили в один ряд, занумеровав их слева направо числами от \(1\) до \(N\). Затем по этому ряду бросили \(K\) шаров, при этом \(i\)-й шар сбил все кегли с номерами от \(l_i\) до \(r_i\) включительно. Определите, какие кегли остались стоять на месте.
Программа получает на вход количество кеглей \(N\) и количество бросков \(K\). Далее идет \(K\) пар чисел \(l_i\), \(r_i\), при этом \(1\le l_i\le r_i\le N\).
Программа должна вывести последовательность из \(N\) символов, где \(j\)-й символ есть “ I ”, если \(j\)-я кегля осталась стоять, или “ . ”, если \(j\)-я кегля была сбита.
Ввод | Вывод |
---|
Y: Ферзи
Известно, что на доске 8×8 можно расставить 8 ферзей так, чтобы они не били друг друга. Вам дана расстановка 8 ферзей на доске, определите, есть ли среди них пара бьющих друг друга.
Программа получает на вход восемь пар чисел, каждое число от 1 до 8 — координаты 8 ферзей. Если ферзи не бьют друг друга, выведите слово NO , иначе выведите YES .
Ввод | Вывод |
---|
Z: Большой сдвиг
Дан массив из \(N\) (\(1 \le N \le 100000\)) целых чисел и число \(K\) (\(|K|
Источник