我有一个方法,它的返回类型是列表但是内部的方法根据某些条件制作3个不同的列表并提供列表,但最后因为该列表的返回类型我不能返回这3个不同的列表,因为在有一点我需要访问这3个不同的列表,我认为这些不是正确的方法,而是我会考虑去创建一个密钥并将3个不同的列表与它们关联的地图,请指教
public List<ghjObject> getabcObjectslistcount(String abcIdentifier)
{
List<ghjObject> abcfulioaObjects = new ArrayList <ghjObject>();
List<ghjObject> deffulioaObjects = new ArrayList <ghjObject>();
List<ghjObject> exsettlement = new ArrayList <ghjObject>();
List<ghjObject> successfulabcsettlement = new ArrayList <ghjObject>();
List<ghjObject> abcFeedObjects = futuresFeedHome.getabcFeedObjects(abcIdentifier);
int failureabcfeed = 0;
int failuredefsettlement =0;
int sucessabcsettlement =0;
if (abcFeedObjects !=null && abcFeedObjects.size()>0)
{
for (ghjObject f : abcFeedObjects)
{
if ("INVALID".equalsIgnoreCase(f.getStatus()) )
{
deffulioaObjects.add(f) ;
failurecounterioafeed++;
}
abcfulioaObjects.add(f);
}
for (ghjObject f : abcfulioaObjects)
{
Settlement settlement = settlementHome.findByID(f.getSettlementId());
if ("ytrQueue".equalsIgnoreCase(settlement.getCurrentWFQueue()) || "yds".equalsIgnoreCase(settlement.getCurrentWFQueue()) )
exsettlement.add(f);
failuredefsettlement++;
if ("wgm".equalsIgnoreCase(settlement.getCurrentWFQueue()) || "yjm".equalsIgnoreCase(settlement.getCurrentWFQueue() ))
{
successfulabcsettlement.add(f);
sucessabcsettlement++;
}
}
}
return abcFeedObjects;
}
人们请告诉我基本上我正在寻找地图实施,如果有人可以提出建议如何地图是有利的,这将是一个伟大的
请告知地图实施
答案 0 :(得分:2)
这真的应该是一个评论,但是因为你要求它:
public List<List<ghjObject>> getabcObjectslistcount(String abcIdentifier)
{
List<List<ghjObject>> toReturn = new ArrayList<ArrayList<ghjObject>>();
List<ghjObject> abcfulioaObjects = new ArrayList <ghjObject>();
List<ghjObject> deffulioaObjects = new ArrayList <ghjObject>();
List<ghjObject> exsettlement = new ArrayList <ghjObject>();
List<ghjObject> successfulabcsettlement = new ArrayList <ghjObject>();
List<ghjObject> abcFeedObjects = futuresFeedHome.getabcFeedObjects(abcIdentifier);
toReturn.add(abcfulioaObjects);
toReturn.add(deffulioaObjects);
toReturn.add(exsettlement);
toReturn.add(successfulabcsettlement);
toReturn.add(abcFeedObjects);
...
//execute the rest of your code, add whatever you need to to those lists, then
return toReturn;
}
我不太了解你的用例,告诉你这是否是一个好的设计,但它完成了你所说的你需要完成的事情 - 这是从一个方法返回几个列表,以便与其他地方进行交互。它与你的想法基本相同 - 返回一个包含多个列表作为值的地图 - 但是,如果你不需要添加Map功能,这就更简单了。
编辑:您访问返回的列表的方式与访问任何列表的元素的方式相同:returned.get(index);
,假设您已将“已返回”的列表命名(您不应该,显然...... )。这假定您的用例使您能够轻松跟踪哪个列表将在哪个索引(基于它们放入列表的顺序)。如果没有,您应该使用具有有意义名称的地图作为键,并将列表作为值。