Java 如果要迭代地图,如何跟踪迭代次数?

Java 如果要迭代地图,如何跟踪迭代次数?,java,android,Java,Android,我有一张树图: Map<Date, String> Sx = new TreeMap<Date, String>(); mapsx=newtreemap(); 我使用aLoader填充它并不断添加值,现在我检索这些值,如下所示: if(Sx.isEmpty() != true){ for (Map.Entry<Date,String> entry : Sx.entrySet()) { //Some logic

我有一张树图:

Map<Date, String> Sx = new TreeMap<Date, String>(); 
mapsx=newtreemap();
我使用aLoader填充它并不断添加值,现在我检索这些值,如下所示:

 if(Sx.isEmpty() != true){
        for (Map.Entry<Date,String> entry : Sx.entrySet()) {

            //Some logic
 }
if(Sx.isEmpty()!=true){
for(Map.Entry:Sx.entrySet()){
//一些逻辑
}
如何知道当前正在处理的迭代次数?类似于for循环中的int I?

只需创建自己的:

int i = 0;
for (Map.Entry<Date,String> entry : Sx.entrySet()) {
    //Some logic
    i++;
}

Log.d(TAG, "I've been through the loop " + i + " times");
inti=0;
for(Map.Entry:Sx.entrySet()){
//一些逻辑
i++;
}
Log.d(标记“我已经通过了循环”+I+“次”);
还有另一种方法

假设您编写了自己的索引类和一个静态方法,该方法在该类的实例上返回Iterable,那么您可以

for (Index<String> each: With.index(stringArray)) {
    each.value;
    each.index;
    ...
}
for(每个索引:带有.Index(stringArray)){
每种价值;
各项指标;
...
}
其中With.index的实现类似于

class With {
    public static <T> Iterable<Index<T>> index(final T[] array) {
        return new Iterable<Index<T>>() {
            public Iterator<Index<T>> iterator() {
                return new Iterator<Index<T>>() {
                    index = 0;
                    public boolean hasNext() { return index < array.size }
                    public Index<T> next() { return new Index(array[index], index++); }
                    ...
                }
            }
        }
    }
}
使用{
公共静态Iterable索引(最终T[]数组){
返回新的Iterable(){
公共迭代器迭代器(){
返回新的迭代器(){
指数=0;
公共布尔hasNext(){返回索引
更多的代码,更多的错误!我会选择另一个。不过,感谢您的洞察力:)总是有简单的方法和干净的方法:)