java enumeration 排序_java – Properties.propertyNames()以相反的顺序返回Enumeration – 为什么?...

在我的项目中,我正在使用一些属性文件.我注意到了Properties.propertyNames()的奇怪行为,它返回一个Enumeration,Enumeration的顺序相反.我做了一个测试:

文件内容是:

TT.1=Development

TT.2=Application Setup / Release

TT.3=Project Management

TT.4=Meetings and Discussions

代码是:

Enumeration> enumeration = properties.propertyNames();

while (enumeration.hasMoreElements()) {

String key = (String) enumeration.nextElement();

String value = properties.getProperty(key);

System.out.println(key + " " + value);

}

输出是:

TT.4 Application Setup / Release

TT.3 Development

TT.2 Meetings and Discussions

TT.1 Project Management

任何人都能说出背后的原因是什么?谢谢.

编辑:

由于HashTable的键是TT.X形式,其中X是一个数字,我对它进行了排序,以便做出正确的顺序.这是下一个实现:

this.taskTypeList = new ArrayList(0);

Map reverseTaskMap = new HashMap(0);

Properties properties = loadTaskProperty();

Enumeration> enumeration = properties.propertyNames();

while (enumeration.hasMoreElements()) {

String key = (String) enumeration.nextElement();

String value = properties.getProperty(key);

reverseTaskMap.put(key, value);

}

LinkedList> linkedList = new LinkedList>(reverseTaskMap.entrySet());

Collections.sort(linkedList, new Comparator>() {

public int compare(Entry object1, Entry object2) {

return Integer.valueOf(Integer.parseInt(object1.getKey().split("\\.")[1])).compareTo(Integer.valueOf(Integer.parseInt(object2.getKey().split("\\.")[1])));

}

});

for (Iterator> iterator = linkedList.iterator(); iterator.hasNext(); ) {

Map.Entry entry = (Map.Entry) iterator.next();

taskTypeList.add(entry.getValue());

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值