如何在ArrayList中打印三个最大数字的索引?

时间:2016-08-12 15:31:32

标签: java sorting arraylist

这里,tvalue是我的ArrayList。我的ArrayList中有10个数字,从110。我想在排序后打印我的ArrayList中最后三个数字的索引,以检索列表中的三个最大数字。但是,我得到了不恰当的价值。谁能帮我吗?以下是与我的程序相关的一些示例代码,

        Collections.sort(tvalue);
        System.out.println(tvalue.get(tvalue.size()-1));
        System.out.println(tvalue.get(tvalue.size()-2));
        System.out.println(tvalue.get(tvalue.size()-3));

我无法使用此代码获取索引,             int index = tvalue.indexOf(tvalue.get(tvalue.size() - 1));             的System.out.println(索引);

2 个答案:

答案 0 :(得分:1)

只需输入以上解释的代码:

List sortedValue = new ArrayList<>(tvalue);
Collections.sort(sortedValue);
for (int i=1; i<4; i++) {
    System.out.println(tvalue.indexOf(tvalue.get(sortedValue.size() - i)));
}

答案 1 :(得分:0)

由于您已经对列表进行了排序,因此indexOf方法不起作用。您需要创建一个初始ArrayList(或List)对象,然后按值复制所有内容。然后,像上面那样对它进行排序,然后执行int index = initialList.indexOf(____)。