Java深入浅出数组的定义与使用下篇

 更新时间:2022年03月15日 11:45:29   作者:K媾‍  
数组是有序的元素序列,若将有限个类型相同的变量的集合命名,那么这个名称为数组名。组成数组的各个变量称为数组的分量,也称为数组的元素,有时也称为下标变量。数组是在程序设计中,为了处理方便, 把具有相同类型的若干元素按有序的形式组织起来的一种形式

接着上一篇继续,老铁们

1.检查数组的有序性

给定一个整型数组, 判断是否该数组是有序的(升序)

   public static boolean isUp(int[] array){
        for (int i = 0; i <array.length-1 ; i++) {
            if(array[i]>array[i+1]){
                return false;
            }
        }
        return true;
    }
 
    public static void main(String[] args) {
        int[] array = {12,13,14,15,16,17,18};
        System.out.println(isUp(array));
 
    }
}

打印结果:

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAS-WqvuKAjQ==,size_20,color_FFFFFF,t_70,g_se,x_16

2.数组排序(冒泡排序)

public class TestDemo {
    public static void bubbleSort(int[] array){
        for (int i = 0; i <array.length-1 ; i++) {
            boolean flg = false;
            for (int j = 0; j <array.length-1-i ; j++) {
                if(array[j]>array[j+1]){
                    int tmp = array[j];
                    array[j] = array[j+1];
                    array[j+1]= tmp;
                    flg = true;
                }
            }
            if(flg = false){
                return;
            }
 
        }
    }
    public static void main(String[] args) {
        int[] array = {12,1,23,15,16,13,17};
        bubbleSort(array);
        System.out.println(Arrays.toString(array));
 
 
    }
}

打印结果:

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAS-WqvuKAjQ==,size_20,color_FFFFFF,t_70,g_se,x_16

Java对数组排序函数:

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAS-WqvuKAjQ==,size_20,color_FFFFFF,t_70,g_se,x_16

填充函数:

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAS-WqvuKAjQ==,size_20,color_FFFFFF,t_70,g_se,x_16

这个函数后面还能跟三个参数:

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAS-WqvuKAjQ==,size_20,color_FFFFFF,t_70,g_se,x_16

一般情况都是左闭右开的 [2,6)形式

3. 给定一个整型数组

将所有的偶数放在前半部分, 将所有的奇数放在数组后半部分

    public static void func(int[] array){
        int i = 0;
        int j = array.length - 1;
        while(i <j){
            while(i < j && array[i] % 2 == 0){
                i++;
            }
            while (i < j && array[j] % 2 != 0){
                j--;
            }
            int tmp = array[i];
            array[i] = array[j];
            array[j] = tmp;
        }
    }
 
    public static void main(String[] args) {
        int[] array = {1,4,3,6,8,5,9};
        func(array);
        System.out.println(Arrays.toString(array));
    }

打印结果:

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAS-WqvuKAjQ==,size_20,color_FFFFFF,t_70,g_se,x_16

4.数组的拷贝 

第一种:

  把一个数组的值拷贝到另一个数组
 public static int[] copyArray(int[] array){
        int[] copy = new int[array.length];
        for (int i = 0; i <array.length ; i++) {
            copy[i] = array[i];
        }
        return copy;
    }
 
    public static void main(String[] args) {
        int[] array = {1,4,6,3,8,9};
        int[] ret = copyArray(array);
        System.out.println(Arrays.toString(ret));
 
 
    }

打印结果:

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAS-WqvuKAjQ==,size_20,color_FFFFFF,t_70,g_se,x_16

第二种:

拷贝数组(本身)函数

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAS-WqvuKAjQ==,size_20,color_FFFFFF,t_70,g_se,x_16

 打印结果:

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAS-WqvuKAjQ==,size_20,color_FFFFFF,t_70,g_se,x_16

还可以长度乘2,但不是在原来的基础上扩大2倍,这里是一个新的对象

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAS-WqvuKAjQ==,size_20,color_FFFFFF,t_70,g_se,x_16

拷贝数组(一部分 )函数:

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAS-WqvuKAjQ==,size_20,color_FFFFFF,t_70,g_se,x_16

所有的Java里面的源代码from,to都是左闭右开区间的 

第三种:

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAS-WqvuKAjQ==,size_20,color_FFFFFF,t_70,g_se,x_16

 打印结果:

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAS-WqvuKAjQ==,size_20,color_FFFFFF,t_70,g_se,x_16

第四种拷贝:

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAS-WqvuKAjQ==,size_20,color_FFFFFF,t_70,g_se,x_16

5. 定义二维数组

二维数组的三种定义方法:

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAS-WqvuKAjQ==,size_20,color_FFFFFF,t_70,g_se,x_16

2行3列的二维数组 

6.打印二维数组

二维数组相当于一个特殊的一维数组

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAS-WqvuKAjQ==,size_20,color_FFFFFF,t_70,g_se,x_16

 第一种:

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAS-WqvuKAjQ==,size_20,color_FFFFFF,t_70,g_se,x_16

 第二种:

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAS-WqvuKAjQ==,size_20,color_FFFFFF,t_70,g_se,x_16

第三种:

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAS-WqvuKAjQ==,size_20,color_FFFFFF,t_70,g_se,x_16

打印结果:

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAS-WqvuKAjQ==,size_17,color_FFFFFF,t_70,g_se,x_16

Java二维数组的特殊化

第一种:

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAS-WqvuKAjQ==,size_20,color_FFFFFF,t_70,g_se,x_16

 打印结果:

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAS-WqvuKAjQ==,size_20,color_FFFFFF,t_70,g_se,x_16

第二种:

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAS-WqvuKAjQ==,size_20,color_FFFFFF,t_70,g_se,x_16

 分析原因:

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAS-WqvuKAjQ==,size_20,color_FFFFFF,t_70,g_se,x_16

第三种:

为什么Java数组的列号可以不写,因为我们可以手动指定

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAS-WqvuKAjQ==,size_20,color_FFFFFF,t_70,g_se,x_16

 这叫做不规则的二维数组

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAS-WqvuKAjQ==,size_20,color_FFFFFF,t_70,g_se,x_16

打印结果:

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAS-WqvuKAjQ==,size_20,color_FFFFFF,t_70,g_se,x_16

总结:

本文具体说了一下一维数组的几种拷贝方法,介绍了二维数组的定义、打印和不规则的二维数组。上述就是今天全部的内容了,文章哪里出现了问题我都会积极改正,也希望大家能更快的掌握自己想要的知识,让我们一起加油!!!!!

到此这篇关于Java深入浅出数组的定义与使用下篇的文章就介绍到这了,更多相关Java 数组内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 一篇文章带你入门Java运算符

    一篇文章带你入门Java运算符

    这篇文章主要介绍了Java基本数据类型和运算符,结合实例形式详细分析了java基本数据类型、数据类型转换、算术运算符、逻辑运算符等相关原理与操作技巧,需要的朋友可以参考下
    2021-08-08
  • hibernate 三种状态的转换

    hibernate 三种状态的转换

    本文主要介绍了hibernate三种状态的转换。具有很好的参考价值。下面跟着小编一起来看下吧
    2017-03-03
  • Java虚拟机底层原理详细分析

    Java虚拟机底层原理详细分析

    这篇文章主要介绍了Java虚拟机底层原理详细分析,运行时数据区就是俗称的虚拟机内存,主要包括我们熟悉的堆、栈、本地方法栈、方法区(元空间)、程序计数器,虚拟机调优主要针对的是运行时数据区,也就是虚拟机内存,需要的朋友可以参考下
    2024-01-01
  • JAVA区间值判断[10,20)的实现

    JAVA区间值判断[10,20)的实现

    本文主要介绍了JAVA区间值判断[10,20)的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-09-09
  • 如何理解Java线程池及其使用方法

    如何理解Java线程池及其使用方法

    线程池是首先创建一些线程,它们的集合称为线程池。使用线程池可以提高性能,它在系统启动时创建大量空闲的线程,程序将一个任务传给线程池,它就会启动一条线程来执行这个任务,执行结束以后,该线程并不会死亡,而是再次返回线程池中成为空闲状态,等待执行下一个任务
    2021-06-06
  • java使用dom4j操作xml示例代码

    java使用dom4j操作xml示例代码

    dom4j是一个Java的XML API,类似于jdom,用来读写XML文件,下面我来个小例子学习他的使用方法
    2013-11-11
  • java应用开发之Mybatis通过Mapper代理自定义接口的实现

    java应用开发之Mybatis通过Mapper代理自定义接口的实现

    这篇文章主要介绍了java应用开发之Mybatis通过Mapper代理自定义接口的实现方式,有需要的朋友可以借鉴参考下,希望能够有所帮助
    2021-09-09
  • Spring-cloud Config Server的3种配置方式

    Spring-cloud Config Server的3种配置方式

    这篇文章主要介绍了Spring-cloud Config Server的3种配置方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-09-09
  • Mybatis配置解析看这一篇就够了

    Mybatis配置解析看这一篇就够了

    这篇文章主要介绍了详解Mybatis是如何解析配置文件的,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-07-07
  • java连接FTP服务器图文教程

    java连接FTP服务器图文教程

    这篇文章主要给大家介绍了关于java连接FTP服务器的相关资料,Ftp是一种常见的文件存储服务器,在很多的项目中都有使用,方便存储各种格式的文件,使用java连接ftp文件服务器也是常用的工具类,需要的朋友可以参考下
    2023-08-08

最新评论