我有两组对象,即A和B。类型A的对象在列表中包含不同数量的类型B的对象。例: A1-B1,B2 A2-B3,B4,B5,B6 A3-B7,B8,B9。 我希望将所有B型项目合并到一个列表中,并通过索引访问它们(最具体的说是将它们用作RecyclerViewAdapter的数据),但是要以某种方式保留对容器A对象的引用(对象上没有对象可以被修改,因此我必须使用数据结构。
我尝试使用HashMap>,但是那样一来,我无法访问B项目的所有索引,并且HashMap意味着要重复获取A型对象,从而产生不必要的内存影响。有更好的方法吗?谢谢。
答案 0 :(得分:0)
您可以这样做:
objectASet.stream().map(a -> {
a.getB().stream.map(b -> new Pair<>(b, a)).collect(Collectors.toList());
).flatMap(list -> list.stream()).collect(Collectors.toList());
此代码的作用如下:
现在,您有了一个列表,其中包含键为b且对值为a引用的对。您可以通过其索引引用列表。希望此解决方案对您有帮助