我的编程空间,编程开发者的网络收藏夹
学习永远不晚

Java数组怎么使用

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

Java数组怎么使用

这篇文章将为大家详细讲解有关Java数组怎么使用,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

一、一维数组

1.创建方法

  • 数组元素类型 数组名字[];

  • 数组元素类型[] 数组名字;

比如:

int array[];//int 类型数组String str[];//String类型数组

我们还要给数组申请空间:

数组名字 = new 数组元素的类型[数组元素的个数];array = new int[10];//代表创建了一个有10个元素的整型数组//注意

当我们用new关键字为数组分配内存的时候,整型数组中各个元素初始值都为0

综合上面两种方法,我们可以直接在声明数组的时候为其开辟内存空间:

数组元素的类型 数组名 = new 数组元素的类型[数组元素的个数];

int array[] = new int[10]

2.初始化数组(一维数组)

常见的初始化方法如下:

int array[] = new int[]{1,2,3,4,5};

或者

int shuzu[] = {1,2,3,4,5};

看一个栗子:

public class Day {    public static void main(String[] args) {        int array[] = new int[]{31,28,31,30,31,30,31,31,30,31,30,31};        int i;        for(i = 0;i<12;i++){            System.out.println((i+1)+"月"+array[i]+"天");        }    }}//我们创建数组array来承接天数,然后循环将其输出。

二、二维数组

二维数组一般表示行列间的关系,也是要重点掌握的。

1.创建方法

  • 数组元素的类型 数组名字[][];

  • 数组元素的类型[][] 数组名字;

代码如下:

int array[][];我们可以直接分配内存空间:array = new int[2][5];或者也可以分别为每一维分配内存空间:array = new int[2][];array[0] = new int[2];array[1] = new int[3];

两种方法均可

2.初始化二维数组

type arrayname[][] = {value1,value2,value3....};

我们看一个代码:

int array[][] = {{2,5},{5,1}};

我们应当注意初始化我们的二维数组后,应当注意数组的小标是在0开始的。
对于数组赋值,我们也可以直接进行赋值:

array[1][1] = 20;

我们写一个类Matrix,在主方法中编写代码实现输出一个3行4列且所有元素均为0的矩阵:

public class Matrix {    public static void main(String[] args) {        int array[][] = new int[3][4];        for(int i=0; i<array.length;i++){            for(int j=0; j<array[i].length;j++){                System.out.println(array[i][j]);            }            System.out.println();        }    }}

和一维数组一样,创建成功后,系统会给每一个元素分配初始值 0。

三、遍历数组

我们一般使用for循环来实现遍历数组,我们重点看一下如何遍历二维数组,我们需要双重for循环。

举个简单例子:

public class Matrix {    public static void main(String[] args) {        int array[][] = new int[3][4];        for(int i=0; i<array.length;i++){            for(int j=0; j<array[i].length;j++){                System.out.println(array[i][j]);            }            System.out.println();        }    }}

但是一般在JAVA里面,我们不会这么玩,我们使用 foreach 来实现数组遍历:

public class Find {    public static void main(String[] args) {        int array[][] = {{4,3},{5,3}};        int i = 0;        for(int a[]: array){            i++;            int j=0;            for(int b: a){                j++;                if(i==array.length && j==a.length){                    System.out.println(b);                }else{                    System.out.println(b + ",");                }            }        }    }}

四、替换元素

有时我们会遇到让我们替换数组里一些元素的情况,我们使用fill方法来实现:

fill(int[] array,int value);

使用指定的int值分配给int型数组的每个元素

我们来看一个简单的栗子:

import java.util.Arrays;public class Swap{    public static void main(String[] args) {        int array[] = new int[5];        Arrays.fill(array,6);        for(int i = 0;i<array.length;i++){            System.out.println("第"+i+"个元素是:"+array[i]);        }     }}

上面的栗子,使得我们数组里面的每一个元素赋值均为6;

但是我们一般想要的是指定一些位置,那么我们继续来看:

fill(int[] array,int fromIndex,int toIndex,int value);fromIndex 是要使用指定值填充的第一个元素的索引(被包括)toIndex 是使用指定值填充的最后一个元素的索引(不包括)value 是储存在数组所有元素中的值//我们应当注意不要让索引位置越界,否则会出现数组越界异常
import java.util.Arrays;public class Fill{    public static void main(String[] args) {        int array[] = new int[]{1,2,3,4};        Arrays.fill(array,1,2,6);//替换数组里第二个元素        for(int i=0; i<array.length;i++){            System.out.println("第"+i+"个元素是:"+array[i]);        }    }}

五、数组排序

在JAVA里面提供了很棒的排序方法,也就是sort( )方法。

Arrays.sort(object);//object也就是数组的名称

直接上代码:

import java.util.Arrays;public class A{    public static void main(String[] args) {        int array[] = new int[]{1,2,3,4};        Arrays.sort(array);        for(int i = 0;i<array.length;i++){            System.out.println(array[i]);        }    }}

JAVA里面对于String类型数组的排序,遵循的原则是数字排在字母前面,大写字母排在小写字母前面。

六、数组拷贝

Java里面一般可以用copyOf() copyOfRange()来实现对数组的复制。
我们先来看copyOf():

copyOf(array,int newlength);array 是要进行复制的数组newlength 是复制后的新数组的长度,如果比原来大,那么空余的地方用0填充,如果小,那么就截取到满足条件为止。

看一下代码:

import java.util.Arrays;public class Copy {    public static void main(String[] args) {        int array[] = new int[]{1,2,3};        int newarray[] = Arrays.copyOf(array,5);        for(int i=0; i<newarray.length; i++){            System.out.println(newarray[i]);        }    }}

然后来看一下copyOfRange的方法:

copyOfRange(array,int fromIndex,int toIndex)
  • array 是要进行复制的数组对象

  • fromIndex 开始复制数组的索引位置,需要包括

  • toIndex 是指要复制范围的最后索引位置,但是是不包括Index的元素

import java.util.Arrays;public class Copy{    public static void main(String[] args) {        int array[] = new int[]{1,2,3,4,5};        int newarray[] = Arrays.copyOfRange(array,0,3);//前三个元素        for(int i = 0;i<newarray.length;i++){            System.out.println(newarray[i]);        }    }}

七、元素查询

二分法想必大家都听说过,在JAVA里面也有二分的思想,也就是binarySearch( )方法,二分搜索方法来搜索数组,获取我们的指定对象,返回我们要搜索的元素的索引。
与复制相似,也有两种类似写法:

binarySearch(Object[ ],Object key) binarySearch(Object[ ] ,int fromIndex, int toIndex ,Object key ) 先看第一个:

binarySearch(Object[ ] array,Object key)//array 是要进行搜索的数组//key 是要进行搜索的值,如果这个key包含在数组里面,则返回搜索值得索引,否则返回 -1 或 " - "

我们看一个栗子:

int array[] = new int[]{4,16,10};Arrays.sort(arr);int index = Arrays.binarySearch(array,0,1,7);

我们看一下上面这个程序,我们发现原来的数组里面是没有 7 的,我们在返回值前面加一个 “ - ” ,然后它索引在0~1,我们看 7 是不是应该在 16 前面,在4的后面,经过sort排序之后,我们的顺序是{4,10,16},此时16的位置是 2 ,所以,我们搜索7的返回值index是 -2。

对于这种方法,应当注意,我们要是找某个元素,那么一定是排顺序后,排序好的,如果没有提前排序,那么结果是无法确定的。

我们再看一个可以查询到的:

import java.util.Arrays;public class B{    public static void main(String[] args) {        int array[] = new int[]{5,2,4,3,1};        Arrays.sort(array);        int index = array.binarySearch(array,4);        System.out.println("4的索引位置是"+index);    }}//返回值是 3 ,也就是 4 的索引位置

我们再来看一下binarySearch(Object[ ] ,int fromIndex, int toIndex ,Object key )

 binarySearch(Object[ ] array,int fromIndex, int toIndex ,Object key)
  •  array要检索的数组

  •  fromIndex是指定范围的开始处索引

  •  toIndex 是指范围内的结束处索引

  •  key 是指要搜索的元素

使用此方法依然要进行数组的排序

举个栗子:

import java.util.Arrays;public class C{    public static void main(String[] args) {        String str[] = new String[]{"ab","cd","ef","gh"};        Arrays.sort(str);        int index;        index = Arrays.binarySearch(str,0,2,"cd");        System.out.println("cd的索引位置:"+index);    }}//cd的索引位置:1

八、排序算法

笔者对于常见的排序算法有过详细的讲解: 小白学六大排序算法(C语言版),思想都是一样的,这里笔者就不再讲解,选取冒泡排序,直接选择排序,反转排序这三个方面来用JAVA实现一下 :

1.冒泡排序

public class BubbleSort {    public static void main(String[] args) {        int[] array = {1,5,6,9,8,7};        BubbleSort bubbleSort = new BubbleSort();        bubbleSort.sort(array);    }    public void sort(int[] array){        for(int i = 1;i<array.length;i++){            for(int j = 0;j<array.length-i;j++){                if(array[j]>array[j+1]){                    int temp;                    temp=array[j];                    array[j]=array[j+1];                    array[j+1]=temp;                }            }        }        showArray(array);    }    public void showArray(int[] array){        for(int i:array){            System.out.print(" "+i);        }        System.out.println();    }}

2.直接选择排序

public class SelectSort {    public static void main(String[] args) {        int array[] = {5,1,2,9,4,6,7};        SelectSort selectSort = new SelectSort();        selectSort.sort(array);    }    public void sort(int[ ] array){        int index;        for(int i = 1; i<array.length; i++){            index = 0;            for(int j=1;j<=array.length-i;j++){                if(array[j]>array[index]){                    index = j;                }            }            int temp;            temp = array[array.length-i];            array[array.length-i] = array[index];            array[index] = temp;        }        showArray(array);    }    public void showArray(int[] array){        for(int i:array){            System.out.print(" "+i);        }        System.out.println();    }}

3.反转排序

public class ReverseSort {    public static void main(String[] args) {        int[] array = {1,2,3,4,5,6};        ReverseSort reverseSort = new ReverseSort();        reverseSort.sort(array);    }    public void sort(int[] array){        System.out.println("原数组:");        showArray(array);        int temp;        for(int i = 0; i<array.length/2; i++){            temp = array[i];            array[i] = array[array.length-1-i];            array[array.length-1-i] = temp;        }        System.out.println("反转之后:");        showArray(array);    }    public void showArray(int[] array){        for(int i:array){            System.out.print(" "+i);        }        System.out.println();    }}

关于“Java数组怎么使用”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

Java数组怎么使用

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

Java数组怎么使用

这篇文章将为大家详细讲解有关Java数组怎么使用,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。一、一维数组1.创建方法数组元素类型 数组名字[];数组元素类型[] 数组名字;比如:int array[];
2023-06-28

Java中数组怎么使用

这篇文章主要为大家展示了“Java中数组怎么使用”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Java中数组怎么使用”这篇文章吧。1:数组说明 数组是Java语言中的特殊类型。它们存放能通过索引
2023-06-03

怎么在java数组中使用length

这篇文章给大家介绍怎么在java数组中使用length,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。Java的特点有哪些Java的特点有哪些1.Java语言作为静态面向对象编程语言的代表,实现了面向对象理论,允许程序员
2023-06-14

Java中数组怎么定义使用

这篇文章主要为大家展示了“Java中数组怎么定义使用”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Java中数组怎么定义使用”这篇文章吧。一、数组的基本用法1.什么是数组数组:存储一组相同数据类
2023-06-29

java数组怎么引用

这篇文章主要介绍了java数组怎么引用,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。1、说明可以把数组看做是一个特殊的类,则写法与构造器引用一致。函数式接口的抽象方法的形参列
2023-06-15

使用java怎么对数组元素求和

使用java怎么对数组元素求和?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。Java的特点有哪些Java的特点有哪些1.Java语言作为静态面向对象编程语言的代表,实现了面
2023-06-14

使用java怎么对数组进行翻转

本篇文章给大家分享的是有关使用java怎么对数组进行翻转,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。Java有哪些集合类Java中的集合主要分为四类:1、List列表:有序的
2023-06-14

使用java怎么向数组插入元素

这篇文章将为大家详细讲解有关使用java怎么向数组插入元素,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。Java是什么Java是一门面向对象编程语言,可以编写桌面应用程序、Web应用程序、分
2023-06-14

java数组方法怎么定义和使用

定义一个数组方法的语法如下:```public static [] ( [] ) {// 方法体}```其中,`data_type` 表示数组元素类型,`method_name` 表示方法名,`array_name` 表示数组名称。方法
2023-06-10

在 Java 中如何使用 return 返回数组?(java中怎么用return返回数组)

在Java编程中,使用return语句返回数组是一个常见的操作。return语句用于从方法中返回一个值,而数组是一种数据结构,可以存储多个相同类型的元素。以下是在Java中使用return返回数组的详细步骤:
在 Java 中如何使用 return 返回数组?(java中怎么用return返回数组)
Java2024-12-19

如何使用 Java 数组的 length 方法?(java数组长度length方法怎么用)

在Java编程中,数组是一种常用的数据结构,用于存储相同类型的多个元素。而数组的length属性是一个非常重要的特性,它表示数组的长度,即数组中元素的个数。本文将详细介绍Java数组的length方法的使用方法。一、length方法的基本概念
如何使用 Java 数组的 length 方法?(java数组长度length方法怎么用)
Java2024-12-17

怎么在java中使用System.arraycopy()函数复制数组

这篇文章将为大家详细讲解有关怎么在java中使用System.arraycopy()函数复制数组,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。Java可以用来干什么Java主要应用于:1.
2023-06-14

在 Java 中如何使用数组创建 user 类?(java怎么用数组创建user类)

在Java编程中,数组是一种常用的数据结构,它可以存储多个相同类型的元素。而创建类则是面向对象编程的基础,通过创建类可以定义对象的属性和行为。那么,如何在Java中使用数组来创建user类呢?下面我们将详细介绍。一、理解user类的概念
在 Java 中如何使用数组创建 user 类?(java怎么用数组创建user类)
2024-12-13

Java 中如何使用 Scanner 给数组赋值?(java中怎么用scanner给数组赋值)

在Java编程中,Scanner类是用于从控制台读取用户输入的重要工具。它提供了一种方便的方式来获取用户输入的数据,并可以将这些数据存储到数组中。以下是使用Scanner给数组赋值的详细步骤:一、导入必要的
Java 中如何使用 Scanner 给数组赋值?(java中怎么用scanner给数组赋值)
Java2024-12-19

使用java怎么在数组中查找元素

这篇文章将为大家详细讲解有关使用java怎么在数组中查找元素,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。Java是什么Java是一门面向对象编程语言,可以编写桌面应用程序、Web应用程序、
2023-06-14

使用java怎么计算数组的最大值

本篇文章给大家分享的是有关使用java怎么计算数组的最大值,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。Java是什么Java是一门面向对象编程语言,可以编写桌面应用程序、We
2023-06-14

使用java怎么往数组中添加元素

使用java怎么往数组中添加元素?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。Java是什么Java是一门面向对象编程语言,可以编写桌面应用程序、Web应用程序
2023-06-14

怎么在Java中使用线程计算数组和

怎么在Java中使用线程计算数组和?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。代码一:五个线程交替累加计算数组之和,这种方法其实不如单线程直接累加快,因为交替累加需要前一
2023-06-15

使用java怎么随机打乱数组的顺序

本篇文章为大家展示了使用java怎么随机打乱数组的顺序,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。Java的特点有哪些Java的特点有哪些1.Java语言作为静态面向对象编程语言的代表,实现了面向
2023-06-14

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录