zoukankan      html  css  js  c++  java
  • java学习博客2

    七、数组操作

    1、遍历数组

    我们在Java程序基础里介绍了数组这种数据类型。有了数组,我们还需要来操作它。而数组最常见的一个操作就是遍历。

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

    public class Main {
        public static void main(String[] args) {
            int[] ns = { 1, 4, 9, 16, 25 };
            for (int i=0; i<ns.length; i++) {
                int n = ns[i];
                System.out.println(n);
            }
        }
    }
    

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

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

    public class Main {
        public static void main(String[] args) {
            int[] ns = { 1, 4, 9, 16, 25 };
            for (int n : ns) {
                System.out.println(n);
            }
        }
    }
    

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

    练习

    请按倒序遍历数组并打印每个元素:

            int [] ns = {1,2,4,5,6,7};
    
            for (int n = (ns.length-1);n>=0;n-- ) {
    
                System.out.print(ns[n] + ", ");
            }
    

    小结

    遍历数组可以使用for循环,for循环可以访问数组索引,for each循环直接迭代每个数组元素,但无法获取索引;

    使用Arrays.toString()可以快速获取数组内容。

    2、数组排序

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

    我们来看一下如何使用冒泡排序算法对一个整型数组从小到大进行排序:

    实际上,Java的标准库已经内置了排序功能,我们只需要调用JDK提供的Arrays.sort()就可以排序

    练习

    请思考如何实现对数组进行降序排序:

    小结

    常用的排序算法有冒泡排序、插入排序和快速排序等;

    冒泡排序使用两层for循环实现排序;

    交换两个变量的值需要借助一个临时变量。

    可以直接使用Java标准库提供的Arrays.sort()进行排序;

    对数组排序会直接修改数组本身。

    3、 二维数组

    因为ns包含3个数组,因此,ns.length3。实际上ns在内存中的结构如下:

                        ┌───┬───┬───┬───┐
             ┌───┐  ┌──>│ 1 │ 2 │ 3 │ 4 │
    ns ─────>│░░░│──┘   └───┴───┴───┴───┘
             ├───┤      ┌───┬───┬───┬───┐
             │░░░│─────>│ 5 │ 6 │ 7 │ 8 │
             ├───┤      └───┴───┴───┴───┘
             │░░░│──┐   ┌───┬───┬───┬───┐
             └───┘  └──>│ 9 │10 │11 │12 │
                        └───┴───┴───┴───┘
    

    使用Java标准库的Arrays.deepToString()可以遍历二维数组

  • 相关阅读:
    面试题-代码
    面试题-数仓
    烂大街的NginxRedisMqDb架构.md
    Ansible-B站.md
    openstack.md
    rabbitMQ.md
    大数据仓库实战项目-电商数仓3.0版.md
    linux分析工具之top命令详解
    小程序开发中 在 wxml格式化 属性断行
    redhat 7.2更新yum源时踩的坑
  • 原文地址:https://www.cnblogs.com/394991776zyh/p/14057289.html
Copyright © 2011-2022 走看看