Что такое альтернатива NamedTuple в Java? - PullRequest
0 голосов
/ 08 апреля 2019

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

#part of the python code:

@staticmethod
def stream_file(fieldnames, id):
   tuple = namedtuple("RECORD", " ".join(fieldnames))
   ...
   data = [x for x in arr]
   yield tuple._make(data)

1 Ответ

1 голос
/ 08 апреля 2019

Вы можете использовать Map. Существуют разные реализации, все с разными преимуществами.

  • HashMap обеспечивает сопоставление на основе хеш-ключа, которое присуще всем объектам в Java.

  • TreeMap лучше, если вы хотите определить идентичность с помощью сопоставимого значения (например, String).

Карты могут печататься, но не по стоимости. Я полагаю, что вы ищете TreeMap<String, Object>, который позволил бы вам сопоставить строку (идентификатор или идентификатор) с объектом. Однако тип объекта в основном анонимный, и вам может потребоваться много instanceof. Однако это, кажется, удовлетворяет вашим требованиям.

...