这里,tvalue
是我的ArrayList。我的ArrayList中有10个数字,从1
到10
。我想在排序后打印我的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(索引);
答案 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(____)。