-3

我有一个方法,它的返回类型是列表,但是里面的方法根据某些条件创建 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;
    }

伙计们请基本上告诉我我正在寻找地图实施如果有人可以请告诉地图如何是有益的那将是一个伟大的请建议地图实施

4

1 回答 1

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;
}

我对您的用例知之甚少,无法告诉您这是否是一个好的设计,但它完成了您所说的需要完成的任务——即从一个方法返回几个列表,以便在其他地方与它们交互。它与您的想法基本相同 - 返回一个包含多个列表作为值的地图 - 但是,如果您不需要添加的地图功能,这会更简单。

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

于 2013-05-23T06:10:16.587 回答