Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/346.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在特定条件下选择映射列表_Java - Fatal编程技术网

Java 在特定条件下选择映射列表

Java 在特定条件下选择映射列表,java,Java,我使用下面的方法创建多个列表和计数器。 从Java的角度来看,我认为这不是正确的方法。我是 我想我可以使用一个有键值对的映射,应该有键 其值类型为列表。你能告诉我我下面的代码是怎么写的吗 更改为使用地图,以及如何对其进行编辑以使其更加 有意义 public Map<String, Object> abclistcount(String Id) { List<abcIdentifierabcobject> successfulboaabcIdentifierabco

我使用下面的方法创建多个列表和计数器。 从Java的角度来看,我认为这不是正确的方法。我是 我想我可以使用一个有键值对的映射,应该有键 其值类型为列表。你能告诉我我下面的代码是怎么写的吗 更改为使用地图,以及如何对其进行编辑以使其更加 有意义

public Map<String, Object> abclistcount(String Id)
{
    List<abcIdentifierabcobject> successfulboaabcIdentifierabcobjects = new ArrayList <abcIdentifierabcobject>();
    List<abcIdentifierabcobject> failureboaabcIdentifierabcobjects = new ArrayList <abcIdentifierabcobject>();
    List<abcIdentifierabcobject> exceptionboasettlement = new ArrayList <abcIdentifierabcobject>();
    List<abcIdentifierabcobject> successfulboasettlement = new ArrayList <abcIdentifierabcobject>();

    HashMap<String, Object> data = new HashMap<String, Object>();
    List<defInfo> reportData = new ArrayList<defInfo>();

    List<abcIdentifierabcobject> abcIdentifierabcobjects = futuresFeedHome.getabcIdentifierabcobjects(fileIdentifier);

    //counter to track
    int failurecounterboafeed = 0;
    int failurecounterboasettlement =0;
    int sucessboasettlement =0;
    int successboacount=0;

    if (abcIdentifierabcobjects !=null  && abcIdentifierabcobjects.size()>0)
    {
        for (abcIdentifierabcobject f : abcIdentifierabcobjects)
        {
            defInfo abjkfeed = new defInfo();
            // INVALID_STATIC_DATA fails at boa_futures feed side itself
            if ("INVALID_STATIC_DATA".equalsIgnoreCase(f.getStatus())  /* INVALID RECORD*/)
            {
                failureboaabcIdentifierabcobjects.add(f) ;
                failurecounterboafeed++;
                abjkfeed.setHeader("Futures Intraday Report");
                abjkfeed.setData(failureboaabcIdentifierabcobjects);
                reportData.add(abjkfeed);
            }
            //if not fail in boa_futures_feed then

            successfulboaabcIdentifierabcobjects.add(f);
            successboacount++;
        }

        for (abcIdentifierabcobject f : successfulboaabcIdentifierabcobjects)
        {
            Settlement settlement = f.getSettlement();
            //tracking the records that are fail on boa_settlement side
            //futher filtering fail at GEN EX queue or Awaiting ack

            if (fwqConstants.AF_T_ZY_SETTLEMENT_EXCEPTION.equalsIgnoreCase(settlement.getCurrentWFQueue()) || fwqConstants.AF_T_ZY_SETTLEMENT_SENT_EX.equalsIgnoreCase(settlement.getCurrentWFQueue()))
            {
                exceptionboasettlement.add(f);
                failurecounterboasettlement++;
            }

            defInfo successfulpayments = new defInfo();
            //seprating the successful list of boa_settlement one in a seprate list
            if (fwqConstants.AF_T_ZY_COMPLETED.equalsIgnoreCase(settlement.getCurrentWFQueue()) || fwqConstants.AF_T_ZY_SETTLEMENT_CREATED.equalsIgnoreCase(settlement.getCurrentWFQueue()))
            {
                successfulboasettlement.add(f);
                sucessboasettlement++;
                successfulpayments.setHeader("Successful Payments");
                successfulpayments.setData(successfulboasettlement);
                reportData.add(successfulpayments);
            }
        }
    }

    return data;
}
公共映射abclistcount(字符串Id)
{
List successfulboaabcIdentifierabcobjects=newarraylist();
List failureboaabcIdentifierabcobjects=newarraylist();
列表例外boacolution=newarraylist();
List successfulboaconsolution=newarraylist();
HashMap数据=新的HashMap();
List reportData=new ArrayList();
List abcIdentifierabcobjects=futuresFeedHome.getabcIdentifierabcobjects(文件标识符);
//反跟踪
int failurecounterboafeed=0;
int FailureCounterBoa=0;
int successboacolution=0;
int successboacount=0;
if(abcIdentifierabcobjects!=null&&abcIdentifierabcobjects.size()>0)
{
for(abcidentierabcobject f:abcidentierabcobjects)
{
defInfo abjkfeed=新的defInfo();
//无效的_静态_数据在boa_期货供给端自身失败
if(“无效的静态数据”。equalsIgnoreCase(f.getStatus())/*无效记录*/)
{
failureboaabcIdentifierabcobjects.add(f);
failurecounterboafeed++;
abjkfeed.setHeader(“期货日内报告”);
abjkfeed.setData(failureboaaccidentifierabcobjects);
reportData.add(abjkfeed);
}
//如果boa_futures_feed没有失败,那么
成功的事件发生者添加(f);
successboaccount++;
}
for(abcidentierabcobject f:successfulboaabcidentierabcobjects)
{
结算结算=f.getconsolution();
//跟踪boa_结算方失败的记录
//在GEN EX队列或等待ack时进一步过滤失败
if(fwqConstants.AF_T_ZY_结算_异常.equalsIgnoreCase(结算.getCurrentWFQueue())| | fwqConstants.AF_T_ZY_结算_发送_EX.equalsIgnoreCase(结算.getCurrentWFQueue()))
{
例外情况。添加(f);
故障解决++;
}
Definitfo successfulpayments=新Definitfo();
//将成功的boa_结算清单拆分为一个拆分清单
如果(fwqConstants.AF_T_ZY_已完成.equalsIgnoreCase(结算.getCurrentWFQueue())| | fwqConstants.AF_T_ZY_结算.equalsIgnoreCase(结算.getCurrentWFQueue()))
{
结算成功。添加(f);
成功解决++;
successfulpayments.setHeader(“成功付款”);
成功付款。设置数据(成功结算);
reportData.add(成功付款);
}
}
}
返回数据;
}

我将纠正命名约定,但这次的重点是如何删除我在内部使用的许多ArrayList。

这里的列表仍然有意义。贴图用于关联不同的关键点和值,同时跟踪不同对象的列表。我想说的是,你需要摆脱柜台,因为它们是不需要的。如果需要特定列表的计数,只需调用
list.size()


如果您愿意,您仍然可以使用这样的映射:
map映射和列表是非常不同的概念

当需要(一种类型的)对象的有序集合时,请选择一个列表

如果要存储关系,将键(一种类型的对象)与值(另一种类型的对象)关联,请使用贴图


它们之间几乎没有重叠。如果要存储关系,请使用地图;否则,不要successfulboaabacidentifierabcobjects
是不可理解的。对于Java中的主要源代码,使用随机字母序列是不可接受的。函数和变量也应该在camelCase中,也可以更改。看看我不明白的问题-是关于用映射替换IdentifierObject列表吗?此外,计数器似乎没有被使用-你需要它们做什么?@user2355514那么每个列表都是abcIdentifierAbcObject可以拥有的“状态”吗?也;“abc”代表什么?它似乎无处不在。那宝儿是蛇吗?