Распаковка массива / коллекции в java

В Python и C#, если у вас есть кортеж / список, вы можете распаковать его следующим образом:

tup = (1, 3)
a, b = tup

Затем a = 1 и b = 3.

Мне кажется, что в Java нет кортежей, но если у меня есть Vector или примитивный массив [] известного размера, есть ли аналогичная идиома распаковки для массивов / векторов в Java? На данный момент я использую решение, приведенное ниже.

a = arr[0]
b = arr[1]

Где arr заменяет настоящий кортеж.

Я открыт для любого ответа, который приводит к аналогичному поведению, даже если он связан с внешними библиотеками / дополнительными классами / и т. д.

В Java нет распаковки кортежей ни в каком виде.

ernest_k 26.10.2018 07:50

Но хороший вопрос.

Scary Wombat 26.10.2018 07:52
4
2
1 021
3

Ответы 3

Нет, в Java таким способом нельзя распаковывать кортежи, векторы, массивы или любые другие типы коллекций.

Внешние библиотеки вам не помогут, так как это вопрос самого языка.

В Java нет кортежей. Невозможно вернуть несколько элементов, а затем сохранить их в нескольких переменных. Все, что вы можете сделать, это вернуть объект с несколькими полями. Однако это никоим образом не может быть эквивалентом кортежа.

Это не только неправильно (у Java есть кортежи в стандартной библиотеке), но вы всегда можете вернуть несколько объектов в виде массива или списка. Кажется, просто нет встроенного способа их распаковать.

DeeJayh 22.03.2021 09:04

Вы можете использовать Pair из javafx.util.Pair.

Другие вопросы по теме