[英]How to use Collections or Sets to organize data structures inside data structures in Java?
我有几组实体名称列表,这些列表组成了一个有组织的数据集,例如:
任意数量的不同实体名称(如Strings)列表始终从01到nn编号。
我打算做的就是阅读它们,并创建一些利用实体根名称(例如ENT)并将其每个实例(例如ENT_01,ENT_02)与自身关联的数据结构。 这意味着当我调用ENT时 ,可以使用它(或它在List,ArrayList等中的位置)作为参数来检索整个数字结构。 问题是,我还需要一种轻松访问每个编号实体实例的方法。
我考虑并基于此问题尝试实现“ ArrayLists ArrayLists” ,第一个是根名称,第二个包含实例,但是这样做似乎效率低下且即兴。
在Java中是否有任何结构或类(可能在Collections和/或Sets下)会以更优雅和更有效的方式实现?
不知道数据的真实性很难说,对于SO来说可能有点过多。
但是,假设“ ENT”是任意键(我假设它是一个字符串),则可以使用Map<String, Entity>
,其中Entity
是包含您内部结构的类。
例:
Map<String, Entity> entities = ...;
进一步假设内部元素0到n紧密堆积(即没有孔或只有小孔),则可以使用ArrayList
(分配给List
属性)并使用get(index)
方法访问该索引处的元素。
例:
class Entity {
List<Element> elements = new ArrayList<>();
Element getElement( int index ) {
if( index < 0 || index >= elements.size() ) {
return null; //out of range, i.e. no such element
}
return elements.get(index);
}
}
因此,对元素“ ENT_02”的查找可能如下所示:
//note that you'd need to handle "ENT" not being present, i.e. the get() returning null
entities.get( "ENT" ).getElement( 2 );
如果您的结构很简单,则实际上可以将其设为Map<String, List<Element>>
但我认为它不是那么简单,或者不会那样做(即Entity
可能包含的内容不只是元素列表)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.