栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Java数组遍历和排序操作

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Java数组遍历和排序操作

1、遍历数组

(1)方式一:for循环

        通过for循环就可以遍历数组,因为数组的每个元素都可以通过索引来访问,因此使用标准的for循环可以完成一个数组的遍历。

int[] ns = {1, 4, 9, 16, 25};
for(int i=0; i 

        数组的索引范围为0~ns.length-1,当 i=ns.length 时就会报超过索引范围错误。

(2)方式二:for-each循环

int[] ns = {1, 4, 9, 16, 25};
for (int n:ns) {
    System.out.println(n);
}

        变量n直接拿到ns数组的元素,而不是索引。显然for-each循环更加简洁,但for-each循环无法拿到数组的索引。

        使用for-each循环打印也很麻烦,Java标准库提供了Arrays.toString(),可以快速打印数组内容。

import java.util.Arrays;

int[] ns = {1, 4, 9, 16, 25};
System.out.println(Arrays.toString(ns));

// 输出结果;
[1, 4, 9, 16, 25]
2、数组排序

        对数组进行排序是程序中非常基本的需要。常用的排序算法有冒泡排序、插入排序和快速排序等。

(1)使用冒泡对一个整型数组从小到大进行排序:

int[] ns = {28, 12, 89, 73, 65, 18, 96, 50, 8, 36};
// 排序前:
System.out.println(Arrays.toString(ns));
// 比较趟数
for (int i=0; i ns[j+1]) {
	    int tmp = ns[j];
	    ns[j] = ns[j+1];
	    ns[j+1] = tmp;
        }
    }
}
// 排序后:
System.out.println(Arrays.toString(ns));

// 运行结果:
[28, 12, 89, 73, 65, 18, 96, 50, 8, 36]
[8, 12, 18, 28, 36, 50, 65, 73, 89, 96]

        冒泡排序的特点是,每一轮循环后,最大的一个数被交换到末尾,因此,下一轮循环就可以"刨除"最后的数,每一轮循环都比上一轮循环的结束位置靠前一位。交换两个变量的值需要借助一个临时变量。

(2)使用Java的标准库已经内置的排序功能,只需要调用JDK提供的Arrays.sort()就可以排序:

int[] ns = {28, 12, 89, 73, 65, 18, 96, 50, 8, 36};
Arrays.sort(ns);
System.out.println(Arrays.toString(ns));

// 运行结果:
[8, 12, 18, 28, 36, 50, 65, 73, 89, 96]

        使用内置的Arrays.sort()对数组排序,实际上修改了数组本身,即变量ns指向的数组内容已经被改变。如果排序的是字符串数组,字符串是引用类型,因此数组的每个元素指向变化了。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/820917.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号