Java 在方法中选择映射而不是列表

Java 在方法中选择映射而不是列表,java,Java,我有一个方法,它的返回类型是list,但是里面的方法根据特定条件制作3个不同的列表,并提供这些列表,但最后由于该列表的返回类型,我无法返回这3个不同的列表,因为在某个时候我需要访问这3个不同的列表,我认为这不是正确的方法,相反,我会考虑制作一张地图,在其中我会创建一个键,并将3个不同的列表与之关联,请建议 public List<ghjObject> getabcObjectslistcount(String abcIdentifier) { List

我有一个方法,它的返回类型是list,但是里面的方法根据特定条件制作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;
    }
public List getabcObjectslistcount(字符串abcIdentifier)
{
List abcfulioobjects=newarraylist();
List deffulioaoobjects=newarraylist();
List exconsolution=newarraylist();
List SuccessfulABCSettElement=new ArrayList();
List abcFeedObjects=futuresFeedHome.getabcFeedObjects(abcIdentifier);
int failureabcfeed=0;
int FailureDefResolution=0;
int sucessabcolution=0;
if(abcFeedObjects!=null&&abcFeedObjects.size()>0)
{
对于(ghjObject f:abcFeedObjects)
{
if(“无效”.equalsIgnoreCase(f.getStatus()))
{
定义对象。添加(f);
failurecounterioafeed++;
}
添加(f);
}
对于(ghjObject f:abcfulioaObjects)
{
结算结算=结算通。findByID(f.getSettlementId());
如果(“ytrQueue.equalsIgnoreCase(结算.getCurrentWFQueue())| |“yds”.equalsIgnoreCase(结算.getCurrentWFQueue()))
增加(f);
failureDefResolution++;
if(“wgm”.equalsIgnoreCase(结算.getCurrentWFQueue())| |“yjm”.equalsIgnoreCase(结算.getCurrentWFQueue()))
{
成功的abc设置。添加(f);
SucessabcResolution++;
}
}
}
返回abcfeed对象;
}
朋友们,请告诉我,基本上我是在寻找地图的实施,如果有人可以建议地图是如何受益,这将是一个伟大的
请为map实施提供建议

这本应只是一个评论,但既然您要求:

 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;
}
public List getabcObjectslistcount(字符串abcIdentifier)
{
List toReturn=new ArrayList();
List abcfulioobjects=newarraylist();
List deffulioaoobjects=newarraylist();
List exconsolution=newarraylist();
List SuccessfulABCSettElement=new ArrayList();
List abcFeedObjects=futuresFeedHome.getabcFeedObjects(abcIdentifier);
添加(abcfulioaObjects);
toReturn.add(定义对象);
toReturn.add(结算外);
toReturn.add(成功ABC设置);
toReturn.add(abcFeedObjects);
...
//执行其余的代码,向这些列表中添加所需的内容,然后
回归回归;
}
我对您的用例了解不够,无法告诉您这是否是一个好的设计,但它完成了您所说的您需要完成的任务——即从一个方法返回多个列表,以便在其他地方与它们交互。这与您的想法基本相同—返回一个包含多个列表作为值的地图—但是,如果您不需要添加的地图功能,这会更简单


编辑:以访问任何列表元素的相同方式访问返回的列表:
returned.get(index),假设您已将列表列表命名为“returned”(显然,您不应该将其命名为…)。这假设您的用例使您能够轻松跟踪哪个列表将位于哪个索引(基于它们被放入列表的顺序)。如果没有,您应该使用具有有意义名称的映射作为键,列表作为值。

为什么不返回
列表?@drewmore无法完全获取它,请详细解释为什么不让您的方法返回列表列表:
public List getabcObjectslistcount(String abcidentier)
@drewmore能否请您对我的上述代码进行更改,以便我能掌握更多信息?您可能希望在实际处理后添加到
以返回
。@drewmore还请告知我们如何取消集合中的单个列表lists@zEro-不,这没有什么区别。@user2355514-请参阅编辑