java如何显示索引而不是元素
嗨,我试图显示数组的索引,而不是元素。到目前为止,这是我代码的一部分:
int randomInt2 = randomGenerator.nextInt(15)+1;
double [] distances = new double [randomInt2];
Arrays.sort(distances);// sorts array from highest to lowest
for (double val : distances) {
System.out.println("["+val+"],");
}
System.out.println("The Nearest to point 1 is point: ");
每个索引都有一个介于1-1000之间的值,但我不想显示我想显示的值,这样我就可以显示哪些索引最接近点1(即0) 对不起,如果我不清楚,如果你需要我解释更多,我很乐意
# 1 楼答案
我假设您想找出原始数组中距离最小的项的索引。在对数组排序时,这些信息会丢失,因为它只会从
0..length-1
索引。因此,你的答案永远是0
你可以做两件事:
1) 找到最小值:
2)将索引信息与距离信息一起存储:
为此,您需要:
public class Distance
,带有距离和索引成员李>Distance[] convertToDistance(double[] array)
的函数,从纯双精度值创建一个距离数组(如果需要)Arrays.sort(T[], Comparator<? extends T>)
方法对数组进行排序sortedDistances[0].index
获取结果# 2 楼答案
多亏dasblinkenlight的评论,我终于明白了你需要什么
最简单的方法就是创建一个类似
并使用它来存储值。注意
Comparable
实现——允许您使用Collections.sort()
和Arrays.sort()
您也可以不使用排序。排序数组比查找最小值要复杂得多。只需在数组上迭代一次,找到最小值并返回其索引
至于索引:如果要访问给定元素的索引,则不能使用标准)
foreach
循环。其中一个原因是,您可能迭代的某些集合不支持元素排序(例如^{您必须使用标准的
for
循环或自己跟踪索引或者
# 3 楼答案
你可以让每一段距离都成为你的目标
然后每次都打电话给身份证
# 4 楼答案
您可以使用老式的
for
循环,而不是增强的for
循环:# 5 楼答案
试试这个