2.9.2 数组的遍历与排序



1.数组的简单遍历

数组可以通过for循环进行遍历,从头到尾将数组的每个位置轮询一遍:

package partOne;
/**
 * 本类用于进一步练习数组
 */
public class ArraysExct {
    public static void main(String[] args) {
        //1.创建一个数组,用来存放12个月的天数
        int[] month = {31,28,31,30,31,30,31,31,30,31,30,31};

        //数组的遍历
        //2.通过for循环遍历数组
        for (int i=0; i<=month.length-1; i++) {
            System.out.println((i+1)+"月有"+month[i]+"天");
        }
    }
}

我们通过数组下标来操作数组中的元素:
month[0]代表数组的开始,
month[month.lenght-1]表示数组的结束,
变化情况为++

2.增强for循环对数组的遍历

同时,JAVA有一种功能很强的循环结构——增强for循环,其可以依次处理数组(或者其他元素集合)中的每个元素,而不用考虑下标的影响。

增强for循环的语法结构为:for(数据类型 用来接收数据的变量名 :原始数据的变量名){};

package partOne;

import java.util.Arrays;
/**
 * 本类用于测试增强for循环对数组的遍历
 * */
public class ArraysExct2 {
    public static void main(String[] args) {
        //1.创建一个char类型的简单数组
        char[] a = {'a','b','c','d','e','f'};
        //2.使用增强for循环遍历:输入foreach后便可有自动提示
        for (char c : a) {
            System.out.println(c);
        }
    }
}

3.数组的排序

Arrays.sort(数组)可对数组进行排序,对于基本类型的数组使用的是优化后的快速排序算法,效率高
对引用类型数组,使用的是优化后的合并排序算法;

package partOne;

import java.util.Arrays;

/**本类用于测试数组的工具类Arrays*/
public class TestArraysSort {
    public static void main(String[] args) {
        //1.创建无序数组
        int[] a = {21,96,75,23,25};

        //底层使用的排序算法是进行优化后的快速排序算法
        Arrays.sort(a);//对无序数组进行直接排序
        System.out.println(Arrays.toString(a));
    }
}

4.数组的练习

4.1 数组与方法的存数据,取数据

  1. 将上方代码创建一个m1方法,方便后续使用,用于从数组中取数据
  2. 创建一个动态数组,长度为10,放入方法m2中,用于从数组中存数据
package partOne;

import java.util.Arrays;
/**
 * 本类用于进一步练习数组
 */
public class ArraysExcts {
    public static void main(String[] args) {
    m1(); //用于从数组中取数据
    m2(); //用于从数组中存数据
}
    private static void m2() {
        // 动态创建长度为10的数组
        int[] a= new int [10];

        //遍历数组,一次给数组的每一个位置上的元素赋值
        //i代表的是数组的下标,从0开始,最大下标是数组的长度-1
        for(int i=0; i<=a.length-1; i++){
            // 根据每轮循环到的i,作为数组下标,操作数组对应位置上的元素
            a[i] = i+4;
        }
        //循环结束后,说明数组的每个位置都经历了赋值(存数据)
        System.out.println(Arrays.toString(a));
        //[4,5,6,7,8,9,10,11,12]
    }
    private static void m1() {
        // 创建方法
        //1.创建一个数组,用来存放12个月的天数
        int[] month = {31,28,31,30,31,30,31,31,30,31,30,31};

        //数组的遍历
        //2.通过for循环遍历数组
        for (int i=0; i<=month.length-1; i++) {
            System.out.println((i+1)+"月有"+month[i]+"天");
        }
    }
}

4.2 存入随机数据以及存入随机长度的数据

package partOne;

import java.util.Arrays;
import java.util.Random;

public class ArraysExcts2 {
    public static void main(String[] args) {
        m1(); //创建一个随机数组
        m2(); //创建一个随机长度的数组
    }

    private static void m2() {
        // 创建一个长度随机的数据
//		int lenght = new Random().nextInt(10);  限定最多位数为10;
        int lenght = new Random().nextInt(5)+5; //[0,5]--->[5,10]
        int[] a = new int[lenght]; //数组的长度是生成的随机长度lenght

        //遍历数组,依次向数组中的的每个位置存入随机值
        for (int i=0; i<=a.length-1; i++) {
            a[i] = new Random().nextInt(100);
        }
        System.out.println(Arrays.toString(a));
    }

    private static void m1() {
        //动态创建一个长度为10的数组
        int[] a = new int[10];

        //遍历数组,依次向数组中的每个位置存入随机值
        for (int i=0; i<=a.length-1; i++) {
            a[i] = new Random().nextInt(100);
        }
        //打印存入的数组
        System.out.println(Arrays.toString(a));
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值