前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【测开技能】Java语言系列(十七)数组操作--遍历与排序

【测开技能】Java语言系列(十七)数组操作--遍历与排序

作者头像
雷子
发布2022-09-29 20:16:03
2530
发布2022-09-29 20:16:03
举报

【测开技能】Java语言系列(一)Java入门

【测开技能】Java语言系列(二)Java基础语法

【测开技能】Java语言系列(三)变量和数据类型

【测开技能】Java语言系列(四) 整数运算

【测开技能】Java语言系列(五) 浮点数运算

【测开技能】Java语言系列(六) 布尔运算

【测开技能】Java语言系列(七) 字符和字符串

【测开技能】Java语言系列(八)数组类型

【测开技能】Java语言系列(九)输入和输出

【测开技能】Java语言系列(十)if判断

【测开技能】Java语言系列(十一)switch多重选择

【测开技能】Java语言系列(十二)while循环

【测开技能】Java语言系列(十三)dowhile循环

【测开技能】Java语言系列(十四)for循环

【测开技能】Java语言系列(十五)break和continue

【测开技能】Java语言系列(十六)简单知识训练

正文


一、遍历

在之前分享了数组,有了数组就会有操作,普遍中使用比较多的就是数组的遍历。

如何遍历数组呢,其实很简单,直接用for循环就可以遍历。看一个遍历的例子

代码语言:javascript
复制
public class main {
    public static void main(String[] args) {
        int[] list = { 1, 14,19, 33, 99 };
        for (int i=0; i<list.length; i++) {
            int n = list[i];
            System.out.println(n);
        }
    }
}

运行下代码,执行结果如下

为了实现for循环遍历,初始条件为i=0,因为索引总是从0开始,继续循环的条件为i<ns.length,因为当i=ns.length时,i已经超出了索引范围(索引范围是0 ~ ns.length-1),每次循环后,i++。

第二种方式是使用for each循环,直接迭代数组的每个元素:

代码语言:javascript
复制

public class main {
    public static void main(String[] args) {
        int[] list = { 1, 14,19, 33, 99 };
        for (int i:
             list) {
            System.out.println(i);
        }
    }
}

最后结果输出

注意:在for (int n : ns)循环中,变量n直接拿到ns数组的元素,而不是索引,因此for each无法拿到元素的索引。根据需求去选择对应的循环方式即可。

二、排序

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

来用冒泡排序实现下从小到大排序。

整体的思路:

遍历循环元素,判断下一个比是否当前小,小就换位置

整体的代码如下

代码语言:javascript
复制
public class main {
    public static void main(String[] args) {
        int[] list = { 1, 14,19, 33, 99 };
        for (int i = 0; i < list.length - 1; i++) {
            for (int j = 0; j < list.length - i - 1; j++) {
                if (list[j] > list[j+1]) {
                    // 交换ns[j]和ns[j+1]:
                    int tmp = list[j];
                    list[j] = list[j+1];
                    list[j+1] = tmp;
                }
            }
        }
        System.out.println(Arrays.toString(list));
    }
}

那么如何实现倒序呢,其实很简单,就是在前面交换的时候,判断小,就拖动到下一位?

代码实现

代码语言:javascript
复制
public class main {
    public static void main(String[] args) {
        int[] list = { 1, 14,19, 33, 99 };
        for (int i = 0; i < list.length - 1; i++) {
            for (int j = 0; j < list.length - i - 1; j++) {
                if (list[j] < list[j+1]) {
                    // 交换ns[j]和ns[j+1]:
                    int tmp = list[j];
                    list[j] = list[j+1];
                    list[j+1] = tmp;
                }
            }
        }
        System.out.println(Arrays.toString(list));
    }
}

结果:

实现了设想的需求。在java中,已经给了一个可以简单排序的,使用如下,

代码语言:javascript
复制
public class main {
    public static void main(String[] args) {
        int[] list = { 1, 14,19, 33, 99 };
        Arrays.sort(list);
        System.out.println(Arrays.toString(list));
        }
     }

输出的结果是:

这是一个升序排序的。这样可以快速的实现数组的排序。

发现问题,解决问题。遇到问题,慢慢解决问题即可。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2022-08-30,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 雷子说测试开发 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档