java 迭代器没有索引_在Java(Pre-6)TreeMap和迭代器索引和下一个元素之间挣扎

我想排序一组日期值对。我的密钥是日期和值是一个字符串。所以我选择了一个TreeMap。

现在,

以下迭代器是否按照类似于TreeMaps的关键字进行排序。我尝试了几个循环,但仍然有疑问

Iterator iter = policyMap.keySet().iterator();

有什么办法可以在不增加迭代器索引的情况下获得下一个键。

在java 6之前是否有此policyMap.higherKey(cpDate))的等号方式。

最后我为我的自我感到惭愧,我也试着追随。

TreeMap policySubMap =

new TreeMappolicyMap.tailMap(cpDate));

policySubMap.remove(policySubMap.firstKey());

System.out.println(" | amount > " + policySubMap.firstKey());这是我完整的代码:

public void controller(){

TreeMap policyMap = new TreeMap();

Calendar cal = Calendar.getInstance();

policyMap.put(addDate(cal, 2).getTime(), "Amount is 10");

policyMap.put(addDate(cal, 10).getTime(), "Amount is 10");

policyMap.put(addDate(cal, -10).getTime(), "Amount is -10");

policyMap.put(addDate(cal, 11).getTime(), "Amount is 11");

policyMap.put(addDate(cal, -11).getTime(), "Amount is -11");

policyMap.put(addDate(cal, -12).getTime(), "Amount is -12");

Iterator iter = policyMap.keySet().iterator();

while (iter.hasNext()) {

Date cpDate = iter.next();

System.out.print("From "+cpDate + " to " + policyMap.get(cpDate));

// if(iter.hasNext())System.out.println(" | amount > " + policyMap.higherKey(cpDate)); // This is not supporting in before java 6

if(iter.hasNext()){

TreeMap policySubMap = new TreeMap(policyMap.tailMap(cpDate));

policySubMap.remove(policySubMap.firstKey());

System.out.println(" | amount > " + policySubMap.firstKey());

}

else System.out.println("Checking date");

}

}

public Calendar addDate(Calendar cal, int amount) {

cal.add(Calendar.DATE, amount);

return cal;

}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值