java - 一维排序数组,但 array[i+1] 总是打印索引为零的元素
问题描述
你好我有一个小问题。我想要一维排序数组。这里的代码,
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
我得到a
了数组 [i+1]。请给我解释一下。谢谢。
解决方案
所以你有一个数组
[abcdf] 您将 temp 设置为数组 (a) 中的第一个元素。
temp = array[i]
然后将当前元素 (0) 设置为下一个元素 (1),所以现在我们有了 [bbcdf]
array[i] = array[i+1];
然后将数组中的下一个元素设置为当前元素。在这种情况下,一个。
array[i+1] = temp
所以数组现在是 [bacdf]
然后你打印出下一个元素。这将是'a'。
当循环打勾时,它现在将查看第二个元素或索引(1),即“a”,并针对下一个元素再次开始整个过程。
'i' 现在将等于数组中索引 (1) 处的第二个元素,这将是 'c' 并且它将执行相同的操作,从而生成数组:[bcadf]。
这个循环的作用是将'a'带到数组的末尾。
推荐阅读
- vba - 如果一个数字写在方括号中,如 [5],这意味着什么
- login - 使用 php 或 javascript 获取唯一的设备 ID
- java - 将数据从适配器发送到活动,getStringExtra() 在第一次单击时返回空值
- javascript - .cshtml 上的表中的值在使用 ajax 发布后未更新
- .net - DotNet 似乎允许两个进程打开同一个端口?
- c++ - boost-python 纯虚拟检测缺失的实现
- php - 如何修复 Curl 中的连接拒绝错误
- javascript - 如何在 JavaScript 中克隆 Select 元素的选项集合
- php - 如何从 Laravel 中的两个相关表中获取所有数据 [一对多]
- angular - 在 Ionic 3 中创建组件时出现问题