 
 
 
 
 
Массивы в языке Java очень похожи на массивы в Ruby, но все их элементы обязаны иметь один и тот же тип. Другими словами, возможен массив целых чисел или массив строк, но недопустим массив, содержащий и то и другое. Как и все другие переменные, массив должен быть объявлен до своего использования.
Под массив требуется выделить память, указав количество элементов в нем, которое в дальнейшем изменить нельзя. Отметим, что каждый из элементов массива целых чисел, по умолчанию, будет равен нулю.
| Ruby | Java | 
|---|---|
| Объявление массива | |
| myArray = [] | int myArray[]; | 
| Выделение памяти | |
| myArray = Array.new(10) | myArray = new int[10]; | 
| Инициализация массива | |
| myArray[0] = 10 myArray[5] = 100 | myArray[0] = 10; myArray[5] = 100; | 
| Объявление с инициализацией | |
| myArray = [1,2,3,4] | 
myArray[] = {1,2,3,4};
 | 
| Длина массива | |
| i = myArray.length | int i = myArray.length; | 
| Доступ к элементу массива | |
| i = myArray[0] | int i = myArray[0]; | 
| Выход за границы массива | |
| i = myArray[1000] # i = nil | int i = myArray[1000]; // ошибка | 
int myArray[] = new int[10];
Аналогично Ruby язык Java поддерживает работу с многомерными массивами. К элементам таких массивов можно добраться, последовательно указывая их индексы. Например,
int a[][] = { {1,2,3},
              {4,5,6},
	    };
// либо 
int b[] = new int [2][3];
b[0][0] = 1; b[0][1] = 2; b[0][2] = 2;
b[1][0] = 4; b[1][1] = 5; b[1][2] = 6;
Сравните это с фрагментом программы на  Ruby:
a = [ [1, 2, 3],
      [4, 5, 6],
    ]
// либо 
b[0][0] = 1; b[0][1] = 2; b[0][2] = 2;
b[1][0] = 4; b[1][1] = 5; b[1][2] = 6;
Ввод данных в языке Java устроен значительно сложнее, чем в Ruby. Кроме того, при вводе возможно возникновение так называемых исключительных ситуаций (Exception), поэтому программы, использующие ввод данных, обязаны содержать фрагменты кода, отвечающие за обработку исключительных ситуаций. В простейших случаях это сводится к добавлению конструкции throws Exception.
Пример
Приведем программу,
демонстрирующую ввод данных с клавиатуры с использованием
класса BufferedReader.
import java.io.*;
class TestInput {
  public static void main(String[] args)
    throws Exception{
    BufferedReader r = new BufferedReader(
        new InputStreamReader(System.in));
    int a;
    double x;
    String str;
    System.out.print("Ведите строку: ");
    str = r.readLine();
    System.out.print("Введите целое число: ");
    a = Integer.parseInt(r.readLine());
    System.out.print("Введите действительное" +
                     " число: ");
    x = Double.parseDouble(r.readLine());
    System.out.println("str=" + str + ", a=" +
                        a + ", x=" + x);
  }
}
Ключевое слово import служит для подключения дополнительных библиотек. В нашем примере подключается пакет классов, отвечающий за ввод/вывод (input/output). BufferedReader создает входной поток данных для получения информации с клавиатуры. Метод readLine, знакомый нам по Ruby, возвращает введенную строку, а заменой методов to_i и to_f (преобразований строки в числа) в языке Java являются:
 После запуска этой программы ввод каждой "порции" данных завершается
нажатием клавиши Enter.
 
 
