2016-11-07 8 views
2

тип списка:Как добавить объект в пару парных списков в java?

List<Pair<Integer, Pair<Integer, Integer>>> listPairOfPair = null; 

Я попробовал это, но это не сработало:

listPairOfPair.add(new Pair<Integer, Pair<Integer, Integer>>(1, (2,3)); 

listPairOfPair.add(new Pair<Integer, Pair<Integer, Integer>>(1, Pair.create(2,3))); 
+0

Это класс java. возможно, это ново, я понятия не имею. –

+1

Я думаю, что это 'android.util.Pair' (https://developer.android.com/reference/android/util/Pair.html). Для меня работает следующее: 'listPairOfPair.add (новая пара > (1, новая пара (2, 3)));' и 'listPairOfPair.add (new Пара > (4, Pair.create (5, 6))); ' –

+0

Почему вы это не работаете? могли бы вы еще пять информации? –

ответ

2

Позволяет идти на "просто"; «уровень за уровнем»:

Pair<Integer, Integer> onePair = new Pair<>(1, 2); // assuming that you are using that android class that has this ctor 

... создает одну пару.

Pair<Integer, Pair<Integer, Integer>> pairOfPairs = new Pair<>(3, onePair); 

... создает пару Integer и ранее созданную пару.

List<Pair<Integer, Pair<Integer, Integer>>> listOfPairedPairs = new ArrayList<>(); 
listOfPairedPairs.add(pairOfPairs); 

... создает список и добавляет один элемент. Это может быть упрощено немного, с:

listdOfPairedPairs = Arrays.asList(pairOfPairs, someOtherPair, ...); 

И, конечно же, вы можете написать такие методы, как:

public Pair<Integer, Pair<Integer, Integer>> of(Integer i1, Integer i2, Integer i3) { 
    ... check that uses such code and returns such a paired pair 

И использовать это как:

listdOfPairedPairs = Arrays.asList(of(1,2,3) , of(4,5,6)); 

Но, конечно, , если вы действительно используете эту реализацию android.util Pair; то вам лучше следовать совету Николя и использовать Pair.create()!

+0

@NicolasFilotto Спасибо за ваш вклад. Я на самом деле неправильно читаю вопрос как список списка пары; вместо списка пары. Исправлено это; и добавил еще несколько полезных материалов (надеюсь, я надеюсь). И для протокола: я рад видеть, что вы все еще набираете репутацию немного быстрее меня, и что вы меня опрокинули; поскольку мне действительно не нравились ситуации несколько недель назад, когда «ваш» представитель «преследовал» моего представителя. – GhostCat

+0

@NicolasFilotto Может быть, я должен сказать, что, надеюсь, в какой-то момент вы будете уверены в своей репутации; так что я получаю шанс снова нагнать. Моя цель - прочитать 100 КБ к 2020 году или около того. Ну, может, и не совсем. Но если все сложится ... во всяком случае, какова ваша цель? – GhostCat

+0

@NicolasFilotto Конечно, у вас там есть точка.Я стараюсь оставаться дружелюбным (всегда смотря на то, как спокойно держится Джон Скит * все *), но я должен признать, посмотрев на 50-го новичка, придумавшего «здесь плохой код, теперь исправь его», иногда я теряю настроение , слишком. Желаю вам удачи для ваших 25 тогда! – GhostCat

2

Предполагая, что вы используете android.util.Pair, он просто может быть сделано в следующем:

listPairOfPair.add(new Pair<>(1, new Pair<>(2, 3))); 

или

listPairOfPair.add(Pair.create(1, Pair.create(2, 3))); 

NB: Убедитесь, чтобы запустить его в пределах Android устройства в противном случае вы получите ошибка типа java.lang.RuntimeException: Stub!