java - 打印数组的索引和元素

标签 java arrays

嘿伙计们,我真的很努力尝试打印我的数组索引和元素值,几天前我发布了一个问题并得到了非常有用的建议,但似乎根本无法正确处理这部分,我可以打印数组的第一个索引(距离),但无法在不丢失原始索引值的情况下打印整个内容:

double minVal = Double.MAX_VALUE;
int minIndex = -1;
for (int i=0, max=distances.length; i<max;i++) {
    if (distances[i] < minVal) {
        minVal = distances[i];
        minIndex = i;
        //Gets the minimum point and minimum distance
    }
}

System.out.println("The Nearest to point K is point: "+minIndex+" with distance "+minVal);

真的很抱歉继续提出这个问题,但我确实已经尝试过,但无法让它在我的生活中发挥作用,任何帮助或建议将不胜感激。

最佳答案

首先,你排序

for (int i=0; i<distances.length; i++) {
    for(int j = i+1; j<distances.length; j++)
    {
        if (distances[i] > distances[j]) 
        {
             double temp = distances[j];
             distances[j] = distances[i];
             distances[i] = temp;
        }
    }
}

然后,您只需打印

for (int i=0; i<distances.length; i++) {
    System.out.println(i + " -> " + distances[i]);
}
<小时/>

如果你想保留原来的索引,你也可以这样做。

  • 最明显的方法是拥有第二个并行数组,并将其与原始数组一起排序

示例:

if (distances[i] < minVal) 
{
    double temp = distances[j];
    int tempindex = indices[j];
    ...
  • 更好的方法是创建一个带有索引(或更恰本地命名为 ID)和值(这是您的 double 值)的类,并对 Distance 类型的数组进行排序。

.

 Class Distance
 {
      public int ID;
      public double value;
 }

关于java - 打印数组的索引和元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20223065/

相关文章:

Java继承问题

java - 释放 Java 崩溃时的锁

c# - 是否可以像数组一样定义列表?

c - 如何使用递归打印出 C 中一系列数字的所有排列?

java - 在特定布局中添加矩阵

java - 如何将电话联系人号码与 Firebase 注册号码进行比较?

java - 第三人称相机背后的数学

c++ - 如何将标准例程添加到函数指针数组中的每个函数?

c - 为什么 C 的 strcpy 对于双索引数组会失败?

java - 当我启动 Eclipse 时退出代码=127