В Haskell вы можете сделать что-то подобное [a, b, c] ++ [d, e]
, чтобы получить [a, b, c, d, e]
. Это сцепленные списки на Haskell, но было бы очень приятно увидеть аналогичный оператор в Java для массивов. Тебе так не кажется? Это элегантно, просто, универсально и не так сложно для реализации.
Если хотите, я предлагаю вам взглянуть на работу Александра Христова в его Взломе компилятора OpenJDK . Он объясняет, как изменить исходный код javac для создания нового оператора. Его пример состоит в определении оператора **, где i ** j = Math.pow(i, j)
. Можно использовать этот пример для реализации оператора, который объединяет два массива одного типа.
Как только вы это сделаете, вы будете привязаны к вашему настроенному javac для компиляции кода, но сгенерированный байт-код будет понят любой JVM.
Конечно, вы можете реализовать свой собственный метод конкатенации массивов на уровне источника, есть много примеров того, как это сделать, в других ответах!
Есть так много полезных операторов, которые могут быть добавлены, и это один из них.