对于下面的课程,如果名称等于某个东西,我想访问一个对象,让我们说"你"。否则我想创建它。 我想检查是否存在名称为'你'然后将条目添加到ArrayList contInstances。如果这样的实例不存在,我想创建它。下次我可能必须使用相同的对象,以便我可以向ArrayList添加更多的条目。
public class Values {
String name;
ArrayList<anotherClass> classInstances = new ArrayList<anotherClass>();
}
这恰好是一个循环。我怎么能这样做?
编辑:我在这里引用一个例子:
if (an object exists that contains field 'name' == 'YOU'){
add entries to the array list directly using the available object
}
else {
create a new object and set the 'name' = 'YOU';
add entries to the array list;
}
答案 0 :(得分:2)
听起来有点像你希望按名称拥有缓存。请考虑使用ArrayList
来跟踪Name-&gt; Object映射,而不是Map<String, AnotherClass>
。
然后您可以使用此方法:
Map<String, AnotherClass> instances = new LinkedHashMap<String, AnotherClass>();
for (...) {
String name = getNextName();
AnotherClass instance = instances.get(name);
if (instance == null) {
instance = makeInstance(name);
instances.put(name, instance);
}
useInstance(name, instance);
}
完成该循环后,如果您仍需要List<AnotherClass>
,则可以使用return new ArrayList<AnotherClass>(instances.values());