Java 如何定义spring中Map值的顺序

Java 如何定义spring中Map值的顺序,java,spring,spring-mvc,Java,Spring,Spring Mvc,我在SpringXML文件中定义了一个映射值 *-spring.xml文件 <util:map id="ruleEvaluationService" map-class="java.util.HashMap"> <entry key="CFN" value-ref="cfnRuleEvaluationService" /> <entry key="PH" value-ref="phRuleEvaluationService" /> &l

我在SpringXML文件中定义了一个映射值

*-spring.xml文件

<util:map id="ruleEvaluationService" map-class="java.util.HashMap">
    <entry key="CFN" value-ref="cfnRuleEvaluationService" />
    <entry key="PH" value-ref="phRuleEvaluationService" />
    <entry key="MPG" value-ref="mpgRuleEvaluationService" />
</util:map>

<bean id="ruleEngine" class="com.medtronic.b2b.core.cvg.service.impl.RuleEngineImpl">
   <property name="ruleEvaluationService" ref="ruleEvaluationService" />
</bean>

我需要以这样的方式维护一个Map值序列,第一个CFN值求值,如果不匹配,那么PH值和进一步的MPG值。我的想法是,如果我在Map中以正确的顺序给出条目,那么在java文件中也会得到相同的序列。但同样的事情没有发生

RuleEngineImpl.java

@Resource(name = "ruleEvaluationService")
private Map<MedtronicB2BRuleType, RuleEvaluationService> ruleEvaluationService;

// some code

public void setRuleEvaluationService(final Map<MedtronicB2BRuleType, RuleEvaluationService> ruleEvaluationService) {
    final Map<MedtronicB2BRuleType, RuleEvaluationService> map = new LinkedHashMap<MedtronicB2BRuleType, RuleEvaluationService>();
    for (final MedtronicB2BRuleType key : ruleEvaluationService.keySet()) {
        map.put(key, ruleEvaluationService.get(key));
    }
    this.ruleEvaluationService = Collections.unmodifiableMap(map);
}
@Resource(name=“ruleEvaluationService”)
私有地图规则评估服务;
//一些代码
公共无效setRuleEvaluationService(最终映射ruleEvaluationService){
最终映射=新LinkedHashMap();
对于(最终MedtronicB2BRuleType键:ruleEvaluationService.keySet()){
map.put(key,ruleEvaluationService.get(key));
}
this.ruleEvaluationService=Collections.unmodifiableMap(映射);
}
}

在这里,我正在编写一个登录setter方法,以正确的顺序填充映射。 但如果我正在打印地图,就会出现错误的顺序

Set ruleTypeSet=ruleEvaluationService.keySet()

结果:[PH、CFN、MPG]

为什么我没有得到像CFN,PH,MPG这样的序列。在spring中定义序列的正确方法是什么


请提供帮助。

您可以使用LinkedHashMap而不是HashMap,这样您的订单将得到维护

<util:map id="ruleEvaluationService" map-class="java.util.LinkedHashMap ">