Java 如何定义spring中Map值的顺序
我在SpringXML文件中定义了一个映射值 *-spring.xml文件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
<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 ">