2016-11-07 59 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,new Pair (2,3)));''和'listPairOfPair.add(new Pair >(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实现;那么你最好遵循Nicolas的建议并使用Pair.create()!

+0

@NicolasFilotto感谢您的输入。我实际上把这个问题误解为对列表的列表;而不是双对的列表。修正了这个;并添加了一些更有用的东西(所以我希望)。并记录下来:我很高兴看到你的声誉比我更快 - 而且你推翻了我;因为我几周前当“你的”代表“追逐”我的代表时,我真的不喜欢这种情况。 – GhostCat

+0

@NicolasFilotto也许我应该说,虽然我希望你在某个时候对你的代表有信心,这样我才有机会再次赶上。我的目标是到2020年左右读100K。那么,也许不是真的。但如果事情解决......无论如何,你的目标是什么? – GhostCat

+0

@NicolasFilotto当然,你有一个点。我试图保持友好(总是看着Jon Skeet做得很平静*),但是我不得不承认,在看到第50位新手想到“这里坏的代码,现在来修复它”之后,有时我会发脾气也是。那么祝你好运! – 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!

相关问题