SlideShare a Scribd company logo
Массивы в Java
2
Массивы
Массив – упорядоченный набор элементов одного типа.
Индекс – номер элемента в массиве.
3
Массивы
Массив можно
представить, как набор
пронумерованных ячеек, в
каждую из которых можно
поместить данные, но
только один элемент
данных в одну ячейку.
Доступ к конкретной
ячейке осуществляется
через её номер.
4
Массивы
 Элементами могут быть значения простых и ссылочных
типов
 Массивы сами по себе являются объектами и наследуют
от класса Object
Индекс 0 1 2 3 4 5 6 7
Значение -5 3 4 8 8 2 1 3
Индекс 0 1 2 3 4 5 6 7
Значение Китай США Россия Канада ЮАР Франция Южная Корея Индия
Доступ к элементам массива
5
Доступ к элементам массива осуществляется по целочисленному индексу с
помощью оператора []
Индекс 0 1 2 3 4 5 6 7
Значение Китай США Россия Канада ЮАР Франция Южная Корея Индия
countries
countries[2]
2
Россия
6
Объявление, инициализация, заполнение
 Объявление
 Инициализация
 Заполнение
 Способ «3 в 1»
int[] array;
byte[] b = {0, 2, 4, 8, 16, 32};
array = new int[20];
int oldFishion[];
array[0] = 10;
array[1] = 15;
passToMethod(new long[] {1, 2, 3, 4, 5});
7
Работа с одномерными массивами
 Форма объявления ссылки на массив с квадратными скобками после типа
элемента является более предпочтительной
 Объект массива создается с помощью оператора new
 Массив при этом заполняется значениями по умолчанию для типа его
элементов (0, false или null)
 Нумерация в массивах начинается с 0
 Длина массива хранится в публичном неизменяемом поле length
 Изменить длину массива после создания его объекта невозможно
8
Заполнение массива случайными числами
java.util.Random rnd = new java.util.Random();
int array[] = new int[20];
for (int i = 0; i < array.length; i++)
array[i] = rnd.nextInt(100);
9
Печать массива
public class Main {
public static void main(String[] args) {
int array[] = new int[20];
for (int i = 0; i < array.length; i++)
System.out.printf("array[%d]=%dn",i,array[i]);
}
}
Класс java.util.Arrays
 Метод void sort(int[] myArray, int, int toIndex) сортирует
массив целых чисел или его часть (от fromIndex до
toIndex) по возрастанию.
 Метод ищет int binarySearch(int[] myArray, int fromIndex,
int toIndex, int key) элемент key в уже отсортированном
массиве myArray или его части (от fromIndex до toIndex).
Если элемент найден, метод возвращает его индекс, если
нет -1.
 Метод String toString(int[] myArray) преобразовывает
массив к строке. 10
11
Пример java.util.Arrays
import java.util.Arrays;
public class Main {
public static void main(String[] args) {
int[] array = {1, 5, 4, 3, 7}; //объявляем и инициализируем массив
System.out.println(Arrays.toString(array));//печатаем массив
Arrays.sort(array); //сортируем массив
System.out.println(Arrays.toString(array));//отсортированный массив
int key = Arrays.binarySearch(array, 5); // ищем число 5
System.out.println(key);//распечатываем индекс числа 5
}
}
Задача №1
Сгенерировать массив строк из 36 элементов,
представляющий колоду игральных карт. Каждая карта
представлена мастью (♠, ♣, ♥, ♦) и достоинством (6, 7, 8, 9,
10, В, Д, К, Т). Например, «♣10».
а) вывести массив на консоль;
b) перемешать колоду.
12
UNICODE-код символа
13
char suits[] = {'u2660', '♥' /*'u2665'*/,
'u2663', 'u2666'};
System.out.print(java.util.Arrays.toString(suits));
Задача №1: решение
14
char suits[] = {'u2660', '♥' /*'u2665'*/, 'u2663', 'u2666'};
String values[] = {"6", "7", "8", "9", "10", "В", "Д", "К", "T"};
String cards[] = new String[36];
int count = 0;
for (int i = 0; i < 4; i++)
for (int j = 0; j < values.length; j++)
cards[count++] = suits[i]+values[j];
System.out.println(java.util.Arrays.toString(cards));
Random rnd = new Random();
for (int i=0; i<cards.length*2; i++)
{
int k = rnd.nextInt(cards.length);
int m = rnd.nextInt(cards.length);
String temp = cards[m];
cards[m] = cards[k];
cards[k] = temp;
}
System.out.println(java.util.Arrays.toString(cards));
Задача №3
В странах Востока использовался календарь, представляющий собой 60-летнюю циклическую
систему. Каждый 60-летний цикл состоит из пяти 12-летних подциклов. В каждом подцикле года носят
названия животных: Крыса, Корова, Тигр, Заяц, Дракон, Змея, Лошадь, Овца, Обезьяна, Петух,
Собака и Свинья.
Кроме того, в названии года фигурируют цвета животных, которые связаны с пятью элементами
природы — Деревом (зеленый), Огнем (красный), Землей (желтый), Металлом (белый) и Водой
(черный).
В результате каждое животное (и его год) имеет символический цвет, причем цвет этот часто
совершенно не совпадает с его "естественной" окраской — Тигр может быть черным, Свинья — красной,
а Лошадь — зеленой.
Например, 1984 год — год начала очередного цикла — назывался годом Зеленой Крысы. Каждый цвет
в цикле (начиная с зеленого) "действует" два года, поэтому через каждые 60 лет имя года (животное и его
цвет) повторяется.
Составить программу, которая по заданному номеру года нашей эры n печатает его название по
описанному календарю в виде: "Крыса, Зеленый".
15
Задача №3
Используя датчик случайных чисел, заполнить массив из
двадцати элементов неповторяющимися числами.
16
Задача №4
Дан массив ненулевых целых чисел. Определить, сколько
раз элементы массива при просмотре от его начала меняют
знак. Например, в массиве 10, –4, 12, 56, –4, –89 знак
меняется 3 раза.
17
18
Многомерные массивы
 Состоят из одномерных массивов, элементами которых
являются ссылки на массивы меньшей размерности
 При создании объекта необязательно указывать все
размерности
 Массив необязательно должен быть «прямоугольным»
// Автоматическая
int[][] twoDimArr = new int[10][5];
// Вручную
int[][] twoDimArr = new int[10][];
for (int i = 0; i < 10; i++)
twoDimArr[i] = new int[i];
// Явно
int[][] arr3 = { {0}, {0, 1}, {0, 2, 4} };
19
Печать двумерного массива
int[][] arr = { {30, 5}, {0, 1}, {10, 30, 20} };
for (int j = 0; j < arr.length; j++) {
for (int i = 0; i < arr[j].length; i++)
System.out.printf("%3d", arr[j][i]);
System.out.println();
}
Просмотр массива с помощью foreach
20
int[] array = new int[] { 1, 2, 3, 4, 5 };
for (int i : array){
System.out.println(i);
}
Домашнее задание: Задача №1
При выборе места строительства жилого комплекса при металлургическом
комбинате необходимо учитывать "розу ветров" (следует расположить жилой
комплекс так, чтобы частота ветра со стороны металлургического комбината
была бы минимальной).
Для этого в течение года проводилась регистрация направления ветра в
районе строительства. Данные представлены в виде массива, в котором
направление ветра за каждый день кодируется следующим образом:
1 — северный, 2 — южный, 3 — восточный, 4 — западный, 5 — северо-
западный, 6 — северо-восточный, 7 — юго-западный, 8 — юго-восточный.
Определить, как должен быть расположен жилой комплекс по отношению к
комбинату.
21
22
Домашнее задание: Задача №2
Пользователь с помощью консоли вводит количество строк и
количество столбцов двумерного массива. Разработать программу,
заполняющую массив натуральными числами «змейкой» как
показано на рисунке нет.

More Related Content

Similar to Массыви в Python. Основы использование массива (20)

PPSX
Arrays
Ihor Porotikov
 
PDF
Lec 1
Alexander Rusin
 
PPT
04 array
pogromskaya
 
PPTX
одномерные массивы
Елена Ключева
 
PPT
Java. Lecture 01. Introducing Java
colriot
 
PPT
Oop java.generics
muqaddas_m
 
PDF
Лекция №6. Деревья. Предмет "Структуры и алгоритмы обработки данных"
Nikolay Grebenshikov
 
PPT
9. java lecture library
MERA_school
 
PPTX
массивы
isva69
 
PPTX
массивы.строки
dasha2012
 
PPTX
Одномерные массивы
sneshachok
 
PPTX
87
Kirrrr123
 
PPT
01 - Знакомство с Java
phearnot
 
PPT
Lecture 2
Anastasia Snegina
 
PPT
291 цикл уроков на тему массивы
sany0507
 
PPT
Msu.Center.Lectures.J01 Introducing Java
olegol
 
PDF
2.3 Указатели и массивы
DEVTYPE
 
PPT
2. java lecture syntax
MERA_school
 
PPT
10. java lecture generics&collections
MERA_school
 
PDF
Ruby: работа с массивами
Evgeny Smirnov
 
04 array
pogromskaya
 
одномерные массивы
Елена Ключева
 
Java. Lecture 01. Introducing Java
colriot
 
Oop java.generics
muqaddas_m
 
Лекция №6. Деревья. Предмет "Структуры и алгоритмы обработки данных"
Nikolay Grebenshikov
 
9. java lecture library
MERA_school
 
массивы
isva69
 
массивы.строки
dasha2012
 
Одномерные массивы
sneshachok
 
01 - Знакомство с Java
phearnot
 
291 цикл уроков на тему массивы
sany0507
 
Msu.Center.Lectures.J01 Introducing Java
olegol
 
2.3 Указатели и массивы
DEVTYPE
 
2. java lecture syntax
MERA_school
 
10. java lecture generics&collections
MERA_school
 
Ruby: работа с массивами
Evgeny Smirnov
 

Массыви в Python. Основы использование массива

  • 2. 2 Массивы Массив – упорядоченный набор элементов одного типа. Индекс – номер элемента в массиве.
  • 3. 3 Массивы Массив можно представить, как набор пронумерованных ячеек, в каждую из которых можно поместить данные, но только один элемент данных в одну ячейку. Доступ к конкретной ячейке осуществляется через её номер.
  • 4. 4 Массивы  Элементами могут быть значения простых и ссылочных типов  Массивы сами по себе являются объектами и наследуют от класса Object Индекс 0 1 2 3 4 5 6 7 Значение -5 3 4 8 8 2 1 3 Индекс 0 1 2 3 4 5 6 7 Значение Китай США Россия Канада ЮАР Франция Южная Корея Индия
  • 5. Доступ к элементам массива 5 Доступ к элементам массива осуществляется по целочисленному индексу с помощью оператора [] Индекс 0 1 2 3 4 5 6 7 Значение Китай США Россия Канада ЮАР Франция Южная Корея Индия countries countries[2] 2 Россия
  • 6. 6 Объявление, инициализация, заполнение  Объявление  Инициализация  Заполнение  Способ «3 в 1» int[] array; byte[] b = {0, 2, 4, 8, 16, 32}; array = new int[20]; int oldFishion[]; array[0] = 10; array[1] = 15; passToMethod(new long[] {1, 2, 3, 4, 5});
  • 7. 7 Работа с одномерными массивами  Форма объявления ссылки на массив с квадратными скобками после типа элемента является более предпочтительной  Объект массива создается с помощью оператора new  Массив при этом заполняется значениями по умолчанию для типа его элементов (0, false или null)  Нумерация в массивах начинается с 0  Длина массива хранится в публичном неизменяемом поле length  Изменить длину массива после создания его объекта невозможно
  • 8. 8 Заполнение массива случайными числами java.util.Random rnd = new java.util.Random(); int array[] = new int[20]; for (int i = 0; i < array.length; i++) array[i] = rnd.nextInt(100);
  • 9. 9 Печать массива public class Main { public static void main(String[] args) { int array[] = new int[20]; for (int i = 0; i < array.length; i++) System.out.printf("array[%d]=%dn",i,array[i]); } }
  • 10. Класс java.util.Arrays  Метод void sort(int[] myArray, int, int toIndex) сортирует массив целых чисел или его часть (от fromIndex до toIndex) по возрастанию.  Метод ищет int binarySearch(int[] myArray, int fromIndex, int toIndex, int key) элемент key в уже отсортированном массиве myArray или его части (от fromIndex до toIndex). Если элемент найден, метод возвращает его индекс, если нет -1.  Метод String toString(int[] myArray) преобразовывает массив к строке. 10
  • 11. 11 Пример java.util.Arrays import java.util.Arrays; public class Main { public static void main(String[] args) { int[] array = {1, 5, 4, 3, 7}; //объявляем и инициализируем массив System.out.println(Arrays.toString(array));//печатаем массив Arrays.sort(array); //сортируем массив System.out.println(Arrays.toString(array));//отсортированный массив int key = Arrays.binarySearch(array, 5); // ищем число 5 System.out.println(key);//распечатываем индекс числа 5 } }
  • 12. Задача №1 Сгенерировать массив строк из 36 элементов, представляющий колоду игральных карт. Каждая карта представлена мастью (♠, ♣, ♥, ♦) и достоинством (6, 7, 8, 9, 10, В, Д, К, Т). Например, «♣10». а) вывести массив на консоль; b) перемешать колоду. 12
  • 13. UNICODE-код символа 13 char suits[] = {'u2660', '♥' /*'u2665'*/, 'u2663', 'u2666'}; System.out.print(java.util.Arrays.toString(suits));
  • 14. Задача №1: решение 14 char suits[] = {'u2660', '♥' /*'u2665'*/, 'u2663', 'u2666'}; String values[] = {"6", "7", "8", "9", "10", "В", "Д", "К", "T"}; String cards[] = new String[36]; int count = 0; for (int i = 0; i < 4; i++) for (int j = 0; j < values.length; j++) cards[count++] = suits[i]+values[j]; System.out.println(java.util.Arrays.toString(cards)); Random rnd = new Random(); for (int i=0; i<cards.length*2; i++) { int k = rnd.nextInt(cards.length); int m = rnd.nextInt(cards.length); String temp = cards[m]; cards[m] = cards[k]; cards[k] = temp; } System.out.println(java.util.Arrays.toString(cards));
  • 15. Задача №3 В странах Востока использовался календарь, представляющий собой 60-летнюю циклическую систему. Каждый 60-летний цикл состоит из пяти 12-летних подциклов. В каждом подцикле года носят названия животных: Крыса, Корова, Тигр, Заяц, Дракон, Змея, Лошадь, Овца, Обезьяна, Петух, Собака и Свинья. Кроме того, в названии года фигурируют цвета животных, которые связаны с пятью элементами природы — Деревом (зеленый), Огнем (красный), Землей (желтый), Металлом (белый) и Водой (черный). В результате каждое животное (и его год) имеет символический цвет, причем цвет этот часто совершенно не совпадает с его "естественной" окраской — Тигр может быть черным, Свинья — красной, а Лошадь — зеленой. Например, 1984 год — год начала очередного цикла — назывался годом Зеленой Крысы. Каждый цвет в цикле (начиная с зеленого) "действует" два года, поэтому через каждые 60 лет имя года (животное и его цвет) повторяется. Составить программу, которая по заданному номеру года нашей эры n печатает его название по описанному календарю в виде: "Крыса, Зеленый". 15
  • 16. Задача №3 Используя датчик случайных чисел, заполнить массив из двадцати элементов неповторяющимися числами. 16
  • 17. Задача №4 Дан массив ненулевых целых чисел. Определить, сколько раз элементы массива при просмотре от его начала меняют знак. Например, в массиве 10, –4, 12, 56, –4, –89 знак меняется 3 раза. 17
  • 18. 18 Многомерные массивы  Состоят из одномерных массивов, элементами которых являются ссылки на массивы меньшей размерности  При создании объекта необязательно указывать все размерности  Массив необязательно должен быть «прямоугольным» // Автоматическая int[][] twoDimArr = new int[10][5]; // Вручную int[][] twoDimArr = new int[10][]; for (int i = 0; i < 10; i++) twoDimArr[i] = new int[i]; // Явно int[][] arr3 = { {0}, {0, 1}, {0, 2, 4} };
  • 19. 19 Печать двумерного массива int[][] arr = { {30, 5}, {0, 1}, {10, 30, 20} }; for (int j = 0; j < arr.length; j++) { for (int i = 0; i < arr[j].length; i++) System.out.printf("%3d", arr[j][i]); System.out.println(); }
  • 20. Просмотр массива с помощью foreach 20 int[] array = new int[] { 1, 2, 3, 4, 5 }; for (int i : array){ System.out.println(i); }
  • 21. Домашнее задание: Задача №1 При выборе места строительства жилого комплекса при металлургическом комбинате необходимо учитывать "розу ветров" (следует расположить жилой комплекс так, чтобы частота ветра со стороны металлургического комбината была бы минимальной). Для этого в течение года проводилась регистрация направления ветра в районе строительства. Данные представлены в виде массива, в котором направление ветра за каждый день кодируется следующим образом: 1 — северный, 2 — южный, 3 — восточный, 4 — западный, 5 — северо- западный, 6 — северо-восточный, 7 — юго-западный, 8 — юго-восточный. Определить, как должен быть расположен жилой комплекс по отношению к комбинату. 21
  • 22. 22 Домашнее задание: Задача №2 Пользователь с помощью консоли вводит количество строк и количество столбцов двумерного массива. Разработать программу, заполняющую массив натуральными числами «змейкой» как показано на рисунке нет.