如何定義和遍歷兩個對象(Foo,Bar)的列表?Java/Groovy:創建並讀取兩個對象的列表
我試了一下:
// create
def fooBar = new ArrayList<Foo, Bar>()
fooBar.add(new Foo())
fooBar.add(new Bar())
fooBar.add(new Foo()) // << shouldn't be allowed or overwrite first foo
def fooBars = new ArrayList<List<Foo, Bar>>()
fooBars << fooBar
// read
fooBars.each { fooBar ->
def foo = fooBar[0]
def bar = fooBar[1]
// do something with foo and bar
}
我想要什麼:
// pseudo code
def fooBar = new ???<Foo, Bar>()
fooBar.set(new Foo())
fooBar.set(new Bar())
def fooBars = new ArrayList<???>()
fooBars << fooBar
fooBars.each { fooBar ->
def foo = fooBar[???] // 0, 'foo', ..?
def bar = fooBar[???]
// do something with foo and bar
}
如果創建我自己的FooBar的類是解決我沒事,我只是希望有一個更簡單的解決方案。
你可以試試'new AbstractMap.SimpleEntry(...)' –
目前還不清楚你到底想要做什麼。你想創建一個列表,其中每個元素是Foo還是Bar?如果是這樣,那麼你想'ArrayList
@ user3030010按照我的理解,OP需要一個正好包含2個元素的列表:一個Foo和一個Bar。換句話說,一個元組/一對。 –