试图迭代Map,如何跟踪迭代次数?

时间:2013-11-29 11:39:29

标签: java android

我有一张树形图:

Map<Date, String> Sx = new TreeMap<Date, String>(); 

我使用aLoader填充它并继续添加值,现在我检索这些值,如:

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

            //Some logic
 }

我如何知道我目前正在处理的迭代次数?类似于for循环中的int i?

2 个答案:

答案 0 :(得分:1)

自己制作:

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");

答案 1 :(得分:1)

还有另一种方式。

鉴于您编写自己的Index类和一个静态方法,该方法返回此类实例的Iterable,您可以

for (Index<String> each: With.index(stringArray)) {
    each.value;
    each.index;
    ...
}

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++); }
                    ...
                }
            }
        }
    }
}