Рассмотрим следующие вопросы перед началом этой статьи
Как получить длину массива без использования IDE с функцией автозаполнения? И как получить длину строки?
Я попросил программистов разных уровней, включая как младшие, так и промежуточные уровни. Никто из них не может ответить на этот вопрос точно и уверенно (если вы можете точно и уверенно ответить на этот вопрос, это доказывает, что вы лучше справляетесь с этим знанием, чем большинство промежуточных программистов). Поскольку многие IDE теперь имеют функции завершения кода, разработчики могут понять много проблем очень поверхностно.
Правильный ответ на вышеупомянутый вопрос должен быть следующим:
int [] arr = new int [3]; system.out.println (arr.length); // Использование длины, чтобы получить степень строки массива str = "abc";
Итак, вопрос в том, почему у массива есть атрибут длины, а строка нет? Или, почему строки имеют метод length() , но массивы нет?
Почему у массива есть атрибут длины?
Во -первых, массив - это контейнерный объект, который содержит фиксированное количество значений того же типа. Как только массив создается, его длина исправлена. Длина массива может использоваться в качестве длины конечной переменной экземпляра. Следовательно, длина может рассматриваться как атрибут массива.
Есть два способа создать массив:
1. Создайте массив через массив.
2. Создайте массив, инициализируя значения.
В любом случае, как только массив создается, его размер фиксирован.
Метод создания массива с использованием выражения выглядит следующим образом, который указывает тип элемента, размер массива и длину массива не менее одного измерения.
Этот метод объявления соответствует требованиям, поскольку он указывает длину измерения (массив имеет тип int, размер 2, а первое измерение - 3)
int [] [] arr = new int [3] [];
При создании массива с использованием инициализации массива вам необходимо предоставить все начальные значения. Форма состоит в том, чтобы использовать {и}, чтобы объединить все начальные значения и разделить их.
int [] arr = {1,2,3};Примечание:
Здесь может быть вопрос. Поскольку размер массива указан при инициативе, int[][] arr = new int[3][];定массив, не давая размер второго измерения массива. Так как определяется длина этого ARR?
На самом деле, длина ARR-3. Например, ARR, 3 пространства выделяются, каждое пространство хранит адрес одномерного массива, который становится «двухмерным» массивом. Но для ARR его длина 3.
int [] [] a = new int [3] []; System.out.println (a.length); // 3int [] [] b = new int [3] [5]; System.out.println (B.Length); // 3
Почему в Java нет класса массива, как строка, определенная в Java
Поскольку массивы также являются объектами, следующий код также является законным:
Объект obj = new int [10];
Массив содержит все методы, унаследованные от объекта (отношения наследования массивов в Java), кроме Clone (). Почему нет класса массива? В Java нет файла Array.java. Простое объяснение состоит в том, что оно скрыто (примечание: массивы в Java немного похожи на основные типы данных, они являются встроенным типом, и нет фактического класса, соответствующего этому). Вы можете подумать об этом вопросе - если есть класс массива, как бы он выглядел? Ему все еще понадобится массив для хранения всех элементов массива, верно? Следовательно, это не лучшая идея для определения класса массива. (Примечание переводчика: здесь может быть немного запутанной, причина немного похожа на: проблема, когда цыплята рождаются с яйцами и цыплятами, и метафора может быть не очень уместной, пожалуйста, поймите это самостоятельно)
Фактически, мы можем получить определение класса массива по следующему коду:
int [] arr = new int [3]; System.out.println (arr.getClass ());
Выход:
класс [я
«Класс [i» представляет подпись типа времени выполнения объекта класса, тип члена которого является массивом Int »
Почему у строки есть метод длины ()?
Структура данных, стоящая за строкой, является массивом char, поэтому нет необходимости определять ненужное свойство (поскольку свойство уже предусмотрено в значении char). В отличие от C, массив ЧАР в Java не равен строке, хотя внутренний механизм строки реализован массивами char. (Примечание: на языке C нет класса строк, а определение строк обычно использует форму char string[6] = "hollis"; )
Примечание. Существуют следующие способы преобразования char [] в строку:
char [] s = {'a', 'b', 'c'}; string string1 = s.tostring (); string string2 = new String (s); string string3 = string.valueof (s);Суммировать
Вышеуказанное - все содержание этой статьи. Я надеюсь, что содержание этой статьи будет полезно для всех в обучении или использовании Java. Если у вас есть какие -либо вопросы, вы можете оставить сообщение для общения.