如何报告JAVA列表中最后一个元素的所有关联位置

时间:2014-07-22 05:16:47

标签: java

我有一项任务是根据多个文件中的计数值打印n个经常使用的单词。 现在问题是在打印n个单词后,我必须在最后位置打印所有关系

例如,如果我根据最高计数打印10个常用单词 当我使用for循环时输出就像这样。

CODE

    int listSize = newList.size() >= 10 ? 10 : newList.size();

    for (int k = 0; k < listSize; k++) {

        Words w = newList.get(k);

        System.out.println("Word : " + ++j + " " + w.getWord() + " "
                + w.getCount());

        // System.out.println(w.getWord());

    }

输出:

word 1 : liked 104
word 2 : hello 98
....
....
....
word 10 : picnic 15

现在如果我再次遇到与15相同的数字,我也必须打印它们 如果我有五个单词相同的单词数15 我必须打印所有关于最后位置的所有关系,必须像这样报告

**OUTPUT :**


word 11 : camera  15 
word 12 : monkey  15 
word 13 : carrot  15 
word 14 : penguin 15 
word 15 : bottle  15 

如何实施此案例指导我提前感谢

1 个答案:

答案 0 :(得分:0)

如果newListgetCount排序,那么打印与上一个打印字相同count的字词的最简单方法是:

    int k; // init k before the cycle
    for (k = 0; k < listSize; k++) {

        Words w = newList.get(k);

        System.out.println("Word : " + ++j + " " + w.getWord() + " "
                + w.getCount());

        // System.out.println(w.getWord());

    }

    if (k > 0) {
        int lastCount = newList.get(k - 1).getCount(); // last printed count
        // print words from the k-th
        while (k < newList.size()
               && newList.get(k).getCount() == lastCount) {
            Words w = newList.get(k);

            System.out.println("Word : " + ++j + " " + w.getWord() + " "
                    + w.getCount());

            ++k;
        }
    }