Как определить и перебрать список из двух объектов (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 и один бар. Другими словами, кортеж/пара. –