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

Java学习Day17

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

Java学习Day17

Java学习Day17 数组的四个特点

数组的长度必须是确定的。数组一旦被创建,其长度就是不可改变的。其元素类型必须是相同类型,不允许出现不同类型。数组中的元素类型可以是任何类型,包括基本类型和引用类型数组变量属于引用类型,数组可以看成是对象,其中的每个元素可以看成是该对象的成员变量,数组对象本身是在堆中的。 数组边界

下标的合法区间[0,length-1],如果越界会就会报错;

public static void main(String[] args){
    int[] a = new int[3];
    System.out.println(a[3]);//报错:ArrayIndexOutofBoundsException
}
数组使用

普通for循环

public static void main(String[] args) {
        int[] a = {2,7,1,8,2,8};
        //打印出全部数组元素
        for (int i = 0; i  

数组作返回值

public static int[] reverse(int[] arrays){//反转数组中的元素
        int[] reverse = new int[arrays.length];
        for (int i = 0; i  
多维数组 

多维数组可以看成是数组的数组,比如二维数组就是一个一个特殊的一维数组,其中每个元素都是一个一维数组。

//二维数组
int[][] arrays = new int[2][5];
//可以看成一个2行5列的数组

多维数组的输出

int[][] arrays = {{0,1},{2,3,4},{5},{6,7,8},{9}};
        //遍历输出所有元素
for (int i = 0; i  
Arrays类 

数组的工具类:java.util.Arrays

API中提供的一个工具类,可以对数据对象进行一些基本操作

查看JDK帮助文档

Arrays类中的方法都是用static修饰的静态方法,可以直接用类名进行调用。

Arrays类具有以下常用功能:

fill方法:给数组赋值sort方法:按升序给数组排序equals方法:比较数组中元素值是否相等binarySearch方法:对排序好的数组进行二分查找操作

public static void main(String[] args) {
        int[] a = {4,432,3,57,6,7,5,234,24};
//        System.out.println(a);   输出的是a变量的内存地址
        System.out.println(Arrays.toString(a));//输出a的数组内容

        //sort方法:排序
        Arrays.sort(a);
        System.out.println(Arrays.toString(a));

        //fill方法:赋值
        Arrays.fill(a,3,5,0);//从a[3]到a[5]赋值0
        System.out.println(Arrays.toString(a));
    }

学会看API帮助文档 冒泡排序

每轮比较位置相邻的两个数,判断是否要交换

 public static void main(String[] args) {
        int[] a = {6,23,78,21,4,69,7,41,67,6,767,34,127,84};
        bubbleSort2(a);
        System.out.println(Arrays.toString(a));
    }
    //冒泡排序
    public static void bubbleSort1(int[] array){
        //外层循环,表示排序的轮数
        for (int i = 0; i < array.length-1; i++) {
            //内层循环,表示每一次排序的交换
            for (int j = 0; j array[j+1]){
                    int temp = array[j];
                    array[j] = array[j+1];
                    array[j+1] = temp;
                }
            }
        }
    }

    //优化后的冒泡排序
    public static void bubbleSort2(int[] array){
        boolean flag = true;//标识,判断每一次是否有交换
        int i = 0;//标志交换轮数

        //外层循环,表示排序的轮数
        while (flag) {
            flag = false;
            //内层循环,表示每一次排序的交换
            for (int j = 0; j array[j+1]){
                    int temp = array[j];
                    array[j] = array[j+1];
                    array[j+1] = temp;
                    flag = true;//flag置为true,表示发生过交换
                }
            }
            i++;//每轮交换过后i自增1
        }
    }
扩展:稀疏数组

稀疏数组可以压缩存储空间


public static void main(String[] args) {
        //创建一个二维数组 10*10
        int[][] array1 = new int[10][10]; // 初始化所有位置都是0
        //给一些位置赋值
        array1[3][5] = 3;
        array1[2][7] = 4;
        array1[1][8] = 5;
        array1[7][3] = 6;

        System.out.println("原始数组为:");
        //输出原始数组
        for (int i = 0; i 
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/754741.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

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

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