Java数组的定义与使用

这篇具有很好参考价值的文章主要介绍了Java数组的定义与使用。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

一.一维数组的定义

1.创建数组

2.初始化数组

 二.数组的使用

1.访问数组

 2.遍历数组

 3.修改数据内容

三.有关数组方法的使用

1.toString

2. copyOf

 四.查找数组中的元素

1.顺序查找

2.二分查找binarySearch

五.数组排序

1.冒泡排序

2.排序方法sort

 六.数组逆置

 七.二维数组的定义

八.二维数组的打印


一.一维数组的定义

1.创建数组

数组定义有三种方法:

int[] array1 = new int[10];//前面的int[]为数组的类型,后面的int[10]为其能够存放的大小,array1为其数组名称
int[] array2 = {1,2,3,4,5};
int[] array3 = new int[]{1,2,3,4,5};

2.初始化数组

初始化数组有动态初始化和静态初始化两种

动态初始化:在创建数组时,只定义数组中元素的个数,并未给里面的元素进行赋值
例如:
int [] array = new int [ 10 ];
静态初始化:在创建数组时不定义数据元素个数,而直接将数组里的数据内容进行赋值,编译器会自己判定数组有几个元素, 后面的数据必须与前面定义的数据类型一致

例如:

int[] array1 = {0,1,2,3,4,5,6,7,8,9};  

 初始化能分为两步,分步的第二步中new int[]不能省略

int [] array ;
array  = new int []{ 10 , 20 , 30 };

 当数组中的元素为动态初始化时,会有对应的默认值

Java数组的定义与使用

 二.数组的使用

1.访问数组

通过数组的下标进行访问,数组在内存中是一块连续的内存空间

public class Test {
    public static void main(String[] args) {
        int[] array = {1,2,3,4,5};
        System.out.println(array[3]);
    }
}

 数组的下标是从0开始的,所以数组用下标访问最大能到数组长度-1

public class Test {
    public static void main(String[] args) {
        int[] array = {1,2,3,4,5};
        System.out.println(array[5]);
    }
}

超过会报异常

Java数组的定义与使用

 2.遍历数组

数组有3种打印方式

(1)for循环打印数组

public class Test {
    public static void main(String[] args) {
        int[] array = {1,2,3,4,5};
        for (int i = 0; i < array.length; i++) {
            System.out.print(array[i]+" ");
        }
    }
}

(2)foreach打印数组

public class Test {
    public static void main(String[] args) {
        int[] array = {1,2,3,4,5};
        for (int x:array) {
            System.out.print(x+" ");
        }
    }
}

 (3)toString打印数组

import java.util.Arrays;

public class Test {
    public static void main(String[] args) {
        int[] array = {1,2,3,4,5};
        System.out.println(Arrays.toString(array));//使用toString方法需要导包,类似C语言中的头文件
    }
}

运行结果:

Java数组的定义与使用

 3.修改数据内容

1.直接传变量

public class Test {
    public static void func(int x){
        x = 10;
        System.out.println("x:"+x);
    }
    public static void main(String[] args) {
        int num = 0;
        func(num);
        System.out.println("num:"+num);
    }
}

运行结果:

Java数组的定义与使用

num的值没有被修改为10,因为方法传参的时候传的是形参,形参相当于是实参的一份临时拷贝,形参的修改不会影响到实参(相当于调用方法时创建的栈帧里有一个变量的值为0,然后被修改为10,方法调用结束,创建的栈帧销毁,并无影响)

2.传的是数组

import java.util.Arrays;

public class Test {
    public static void func(int[] array){
         array[0] = 10;
    }
    public static void main(String[] args) {
        int[] array = {1,2,3};
        func(array);
        System.out.println(Arrays.toString(array));
    }
}

 运行结果:

Java数组的定义与使用

 3.传的数组返回的也是数组

import java.util.Arrays;

public class Test {
    public static int[] func(int[] array){
        array[0] = 10;
        array[2] = 30;
        return array;
    }
    public static void main(String[] args) {
        int[] array = {1,2,3};
        func(array);
        System.out.println(Arrays.toString(array));
    }
}

运行结果:

Java数组的定义与使用

三.有关数组方法的使用

1.toString

toString方法的作用是将数组的数据变成字符串类型数据

import java.util.Arrays;

public class Test {
    public static void main(String[] args) {
        int[] array = {1,2,3,4,5};//定义一个数组
        String arrays = Arrays.toString(array);//用字符串类型接受方法的返回值
        System.out.println(arrays);
    }
}

运行结果:Java数组的定义与使用

模拟实现toString

public class Test {

    public static String toString(int[] array){//返回类型为字符串类型
        String array1 = "[";//定义一个字符串类型数据
        for (int i = 0; i < array.length; i++) {
            array1+=array[i];
            if(i!= array.length-1){
                array1+=",";
            }
        }
        array1+="]";
        return array1;
    }

    public static void main(String[] args) {
        int[] array = {1,2,3,4,5};//定义一个数组
        String arrays = toString(array);//用字符串类型接收方法的返回值
        System.out.println(arrays);
    }
}

运行结果:

Java数组的定义与使用

2. copyOf

Java数组的定义与使用

第一个参数original - 要复制的数组

第二个参数newLength - 要返回的副本的长度

import java.util.Arrays;

public class Test {

    public static void main(String[] args) {
        int[] array = {1,2,3,4,5};
        int[] newArray = new int[array.length];//新数组
        newArray = Arrays.copyOf(array,array.length);
        System.out.println(Arrays.toString(newArray));
    }
}

运行结果:

Java数组的定义与使用

模拟实现copyOf 

import java.util.Arrays;

public class Test {

    public static int[] copyOf(int[] array,int length){
       int[] newArray = new int[array.length];
        for (int i = 0; i < array.length; i++) {//循环赋值
            newArray[i] = array[i];
        }
        return newArray;
    }

    public static void main(String[] args) {
        int[] array = {1,2,3,4,5};
        int[] newArray = copyOf(array, array.length);
        newArray[2] = 30;//将拷贝好的数组的第3个元素赋值为30,观察该改变是否对原数组是否有影响
        System.out.println("array:"+Arrays.toString(array));
        System.out.println("newArray:"+Arrays.toString(newArray));
    }
}

运行结果:

Java数组的定义与使用

 四.查找数组中的元素

1.顺序查找

public class Test {

    public static int find(int[] array,int k){
        for (int i = 0; i < array.length; i++) {
            if(k == array[i]){
                return i;//找到了就返回下标
            }
        }
        return -1;//找不到返回-1
    }

    public static void main(String[] args) {
        int[] array = {1,2,3,0,7,8,9,4,5,6};
        int ret = find(array,4);
        System.out.println(ret);
    }
}

运行结果:

Java数组的定义与使用

2.二分查找binarySearch

二分查找必须是有序数组

import java.util.Arrays;

public class Test {

    public static void main(String[] args) {
        int[] array = {1,2,3,4,5,6,7,8,9,10};
        int ret = Arrays.binarySearch(array,4);
        System.out.println(ret);
    }
}

运行结果:

Java数组的定义与使用

模拟实现binarySearch 

Java数组的定义与使用

a - 要搜索的数组

key - 要搜索的值 

public class Test {

    public static int binarySearch(int[] array,int k){
        int left = 0;
        int right = array.length-1;
        while(left<=right){
            int mid = (left+right)/2;
            if(array[mid]>k){//查找范围左移
                right = mid-1;
            }else if(array[mid]<k){//查找范围右移
                left = mid+1;
            }else{
                return mid;
            }
        }
        return -1;
    }

    public static void main(String[] args) {
        int[] array = {1,2,3,4,5,6,7,8,9,10};
        int ret = binarySearch(array,4);
        System.out.println(ret);
    }

五.数组排序

1.冒泡排序

import java.util.Arrays;

public class Test {

    public static void bubbleSort(int[] array){
        for (int i = 0; i < array.length-1; i++) {
            boolean flag = true;
            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;
                    flag = false;
                }
            }
            if(flag == true){//已经有序
                break;
            }
        }
    }

    public static void main(String[] args) {
        int[] array = {1,2,3,6,5,0,4,8,7,9};
        bubbleSort(array);
        System.out.println(Arrays.toString(array));
    }

运行结果:

Java数组的定义与使用

2.排序方法sort

import java.util.Arrays;

public class Test {
    public static void main(String[] args) {
        int[] array = {1,2,3,6,5,0,4,8,7,9};
        Arrays.sort(array);
        System.out.println(Arrays.toString(array));
    }
}

运行结果:Java数组的定义与使用

 六.数组逆置

import java.util.Arrays;

public class Test {

    public static void reverse(int[] array){
        int head = 0;
        int tail = array.length-1;
        while(head<tail){
            int tmp = array[head];
            array[head] = array[tail];
            array[tail] = tmp;
            head++;//后移
            tail--;//前移
        }
    }

    public static void main(String[] args) {
        int[] array = {1,2,3,4,5,6};
        reverse(array);
        System.out.println(Arrays.toString(array));
    }

运行结果:

Java数组的定义与使用

 七.二维数组的定义

二维数组同样有三种定义方式

public class Test {

    public static void main(String[] args) {
        int[][] array1 = {{1,2,3},{4,5,6}};
        int[][] array2 = new int[2][3];
        int[][] array3 = new int[][]{{1,2,3},{4,5,6}};
    }

八.二维数组的打印

Arrays包里面的toString方法是将数组中的元素转换为字符串,用2个toString方法来打印二维数组时,第一个toString已经将数组转换为字符串,第二个toString是不能接收字符串的,所以不能用toString来打印二维数组

应用deepToString来打印

import java.util.Arrays;

public class Test {

    public static void main(String[] args) {
        int[][] array = {{1,2,3},{4,5,6}};
        System.out.println(Arrays.deepToString(array));
    }

运行结果:

Java数组的定义与使用 文章来源地址https://www.toymoban.com/news/detail-468286.html

到了这里,关于Java数组的定义与使用的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【Java.SE】数组的定义与使用

    作者简介: 辭七七,目前大一,正在学习C/C++,Java,Python等 作者主页: 七七的个人主页 文章收录专栏 :Java.SE,本专栏主要讲解运算符,程序逻辑控制,方法的使用,数组的使用,类和对象,继承和多态,抽象类和接口等内容 欢迎大家点赞 👍 收藏 ⭐ 加关注哦!💖💖 数

    2024年02月10日
    浏览(36)
  • Visual Studio 2022环境中C语言的使用——一维数组和二维数组

    我是荔园微风,作为一名在IT界整整25年的老兵,今天总结一下,Visual Studio 2022环境中,是如何使用C语言的数组的。 先说一维数组,直接上代码: 这里特别容易搞错的就是一维数组的初始化,方法有如下几种: 1.在定义数组时直接对数组元素赋初值,例如: int iArray[6]={1,3,

    2024年02月05日
    浏览(86)
  • Java:定义一个学生类(Student),属性包括:学号,姓名,性别,年龄;方法包括:获得学号,获得姓名,获得性别,获得年龄,修改学号,修改姓名,修改性别,修改年龄。定义并创建一个学生数组对象。

       定义一个学生类(Student),属性包括:学号,姓名,性别,年龄;方法包括:获得学号,获得姓名,获得性别,获得年龄,修改学号,修改姓名,修改性别,修改年龄。定义并创建一个学生数组对象,长度可自定,最后在控制台输出学生信息。 结果:  

    2024年02月11日
    浏览(59)
  • PHP最简单自定义自己的框架创建目录结构(二)

    1、mvc目录结构   2、目录解释 KJ:项目名称   core:框架核心目录           KJ.php 框架运行入口   index: 框架模块            controller:模块控制器            model:模块模型数据库操作            view:页面显示html   index.php:index模块框架入口 3、index.php框架入口文件引入框

    2024年02月13日
    浏览(60)
  • 【对于一维信号的匹配】对一个一维(时间)信号y使用自定义基B执行匹配追踪(MP)研究(Matlab代码实现)

     💥💥💞💞 欢迎来到本博客 ❤️❤️💥💥 🏆博主优势: 🌞🌞🌞 博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️ 座右铭: 行百里者,半于九十。 📋📋📋 本文目录如下: 🎁🎁🎁 目录 💥1 概述 📚2 运行结果 🎉3 参考文献 🌈4 Matlab代码实现 对一个

    2024年02月13日
    浏览(43)
  • 5.一维数组与字符数组

    数组:指一组具有相同数据类型的数据的有序集合。 一维数组的定义格式为 类型说明符 数组名[常量表达式]; 常量表达式中可以包含常量和符号常量,但不能包含变量 可以只给一部分元素赋值,如int a[10]={0,1,2,3,4};后面的值会默认为0 在对全部数组元素赋初值时,由于数据的

    2024年02月12日
    浏览(40)
  • 【PHP】二维数组转一维数组

    在 PHP 中,如果你想将一个二维数组转换为一维数组,你可以使用几种不同的方法。以下是一些常见的方法: array_column() 用于提取数组中的列,最为直接 array_map() 用于对数组中的每个元素应用回调函数,返回的是由回调函数的返回值组成的新数组。 以上任何一种方法都可以

    2024年02月04日
    浏览(65)
  • 【JavaSE】一维数组和二维数组详解

    欢迎关注个人主页:逸狼 创造不易,可以点点赞吗~ 如有错误,欢迎指出~ 目录 一维数组 基本语法 初始化 遍历和打印 数组是引用型变量 基本类型变量与引用类型变量的区别 null 数组传参和返回 总结 二维数组 基本语法 初始化 遍历和打印 数组:可以看成是相同类型元素的

    2024年04月09日
    浏览(44)
  • 【013】C++数组之一维数值数组和二维数值数组

    💡 作者简介:专注于C/C++高性能程序设计和开发,理论与代码实践结合,让世界没有难学的技术。包括C/C++、Linux、MySQL、Redis、TCP/IP、协程、网络编程等。 👉 🎖️ CSDN实力新星,社区专家博主 👉 🔔 专栏介绍:从零到c++精通的学习之路。内容包括C++基础编程、中级编程、

    2024年02月06日
    浏览(83)
  • 【C语言】利用数组处理批量数据(一维数组和二维数组)

    前言 :在前面学习的程序中使用的变量都属于基本类型,例如整型、字符型、浮点型数据,这些都是简单的数据类型。对于简单的问题,使用这些简单的数据类型就可以了。但是对于有些需要处理的数据,只用以上简单的数据类型是不够的,难以反映出数据的特点,也难以有

    2024年02月08日
    浏览(56)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包