Я не думаю, что в Java есть класс кортежей общего назначения, но создать собственный может быть так же просто, как следующее:
public class Tuple<X, Y> {
public final X x;
public final Y y;
public Tuple(X x, Y y) {
this.x = x;
this.y = y;
}
}
Конечно, есть некоторые важные последствия того, как разрабатывать этот класс в отношении равенства, неизменности и т. д., особенно если вы планируете использовать экземпляры в качестве ключей для хеширования.
Создайте класс, описывающий концепцию, которую вы фактически моделируете, и используйте ее. Он может просто хранить два Set
и предоставлять для них средства доступа, но его следует назвать так, чтобы указывать, что именно представляет собой каждый из этих наборов и почему они сгруппированы вместе.
Вот точно такой же вопрос в другом месте, который включает более надежный равен
, хэш
, на который ссылается maerics:
Это обсуждение отражает подходы maerics и ColinD: «следует ли мне повторно использовать класс Tuple с неопределенным именем или создавать новый класс с конкретными именами каждый раз, когда я сталкиваюсь с этой ситуацией». Много лет назад я был в последнем лагере; Я превратился в поддержку первого.