Мне нужно пояснить, почему в этом коде используется новое ключевое слово
Здравствуйте все, пожалуйста, почему ключевое слово "new" используется при возврате нового массива в вопросе leetcode № 1 (twoSum).
Вопрос - Учитывая массив целых чисел, верните индексы двух чисел таким образом, чтобы они складывались в определенную цель.
Вы можете предположить, что каждый вход будет иметь ровно одно решение, и вы не можете использовать один и тот же элемент дважды.
Пример:
Даны числа = [2, 7, 11, 15], цель = 9,
Потому что nums[0] + nums[1] = 2 + 7 = 9,
возврат [0, 1].
Решение Грубой Силы -
public class TwoSum { public static void main(String[] args) { int[] nums = {2, 5, 9, 7}; twoSum(nums, 9); } public static int[] twoSum(int[] nums, int target) { for (int i = 0; i < nums.length; i++) { for (int j = i + 1; j < nums.length; j++) { if (nums[i] + nums[j] == target) { System.out.println("fisrtIndex is " + i + " secondIndex is " + j); return new int[]{i, j}; } } } return new int[]{}; } }
Мой вопрос заключается в том, почему мы должны использовать ключевое слово "new" при возврате нового целочисленного массива здесь(
return new int[]{i, j};) когда класс TwoSum не расширяет класс Arrays в java?
Как получилось, что мы можем создать новый экземпляр массива, не расширяя массивы классов в java?
Int in (return new int[] {i, j}) показывает тип возвращаемого значения, но зачем использовать ключевое слово "new"?
Я надеюсь, что мой вопрос ясен, спасибо за любую помощь.
Что я уже пробовал:
public static int[] twoSum(int[] nums, int target) { for (int i = 0; i < nums.length; i++) { for (int j = i + 1; j < nums.length; j++) { if (nums[i] + nums[j] == target) { System.out.println("fisrtIndex is " + i + " secondIndex is " + j); return new int[]{i, j}; } } } return new int[]{}; }