java - 一维排序数组,但 array[i+1] 始终打印索引零处的元素

标签 java arrays sorting

你好,我有一个小问题。 我想要一维排序数组。 这是代码,

public class MyClass {
public static void main(String args[]) {
    String[] array = new String[]{"a","b","c","d","f"};
    String temp;
    for(int i =0; i < array.length; i++){
        if(i +1 < array.length){
            System.out.print("n >>" + i +" ");
            temp = array[i];
            array[i] = array[i+1];
            array[i+1] = temp;
            System.out.println(array[i+1]+ " " +array[i]);
        }
    }

}

}

当我执行此代码时,我得到打印:

n >>0 a b
n >>1 a c
n >>2 a d
n >>3 a f

我得到了数组[i+1]的a。请给我解释一下。 谢谢。

最佳答案

所以你有一个数组

[a b c d f] 将 temp 设置为数组 (a) 中的第一个元素。

temp = array[i]

然后将当前元素 (0) 设置为下一个元素 (1) 所以现在我们有 [b b c d f]

array[i] = array[i+1];

然后将数组中的下一个元素设置为当前元素。在这种情况下,a.

array[i+1] = temp

所以数组现在是 [b a c d f]

然后打印出下一个元素。这将是“a”。

当循环结束时,它现在将查看第二个元素或索引 (1) 这是“a”,然后针对下一个元素再次开始整个过程​​。

“i”现在将等于数组中索引 (1) 处的第二个元素,即“c”,并且它将执行相同的操作,从而生成数组: [b c a d f]。

此循环将执行的操作是将“a”进位到数组末尾。

关于java - 一维排序数组,但 array[i+1] 始终打印索引零处的元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56691627/

相关文章:

c++ - 处理大型数据集 - 算法结果与 1k 条目测试匹配,但在 100 万条目测试中失败 - 相同的算法

java - Java 中大文件的 MD5 或 SHA 哈希值

javascript - 在 D3.js 中按内部索引对嵌套数组进行分组

javascript - 使用平均值、标准开发或回归来填充 Javascript 数组?

node.js - 如何在 mongodb 和 NodeJS 查询中使用 limit

delphi - TFDTable 中的降序排序会导致重复行

java - 匿名类和匿名线程

java - 如何在同步 Sphero 时保持蓝牙连接并且我使用多个 Activity

java - 如何用java实现自定义的tab控件

javascript - 在 AngularJS 中的多个作用域变量上设置 $watch