专业汉语词典知识平台,分享汉字词语知识、历史文学知识解答!

励北网
励北网

java创建数组的方法及使用

来源:小易整编  作者:小易  发布时间:2022-12-28 03:18
摘要:java创建数组的方法及使用。数组是具有相同数据类型的一组数据的集合,作为对象允许使用new关键字进行内存分配。首先先来熟悉一下一维数组的创建和使用。声明一维数组,有下列两种方式:数组元素类型数组名字[]数组元素类型[]数组名字;数组元素...

java创建数组的方法及使用。数组是具有相同数据类型的一组数据的集合,作为对象允许使用new关键字进行内存分配。首先先来熟悉一下一维数组的创建和使用。

声明一维数组,有下列两种方式:

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

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

数组元素类型据定了数组的数据类型,它可以是java中任意的数据类型,声明一维数组,如:int arr[]; String str[]; int arr[]是声明int型数组,数组中的每个元素都是int型数值,同理,str[]数组中的每个元素都是String类型。

注:Java语言中声明数组时不能指定其长度(数组中元素的个数),这是因为数组是一种引用类型的变量,因此使用它定义一个变量时,仅仅表示定义了一个引用变量(也就是定一个了一个指针),这个引用变量还未指向任何有效的内存,所以定义数组时不能指定数组的长度。而且由于定义数组仅仅只是定一个引用变量,并未指向任何有效的内存空间,所以还没有内存空间来存储数组元素,因此这个数组也不能使用,只有在数组进行初始化后才可以使用。

为数组分配内存空间的语法格式如下:

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

例如,arr=new int[5];也可以在声明数组的同时为数组分配内存,例如:int arr[]=new int[5];

附:一旦使用new关键字为数组分配了内存空间,每个内存空间存储的内容就是数组元素的值,也就是数组元素就有了初始值,即使这个内存空间存储的内容是空,这个空也是一个值null。也就是说不可能只分配内容空间而不赋初始值,即使自己在创建数组对象(分配内容空间)时没有指定初始值,系统也会自动为其分配。

附:诸如基础数据类型的包装类,其默认的初始化值均为null,因为基础数据类型的包装类创建的数组属于引用数组(对象数组),对象数组默认的初始化值都是null。

理解了一维数组的声明和创建,二维数组的声明和创建大同小异。二维数组的声明,int arr[][];二维数组常用于表示表,第一个下标表示行,第二个下标表示列。直接为二维数组分配内存,方法如下:a=new int[2][4];

为数组分配内存之后,就要学习如何初始化数组了。一维数组的初始化形式有两种:

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

或 int arr[]={1,2,3,4};

二维数组的初始化方法: int myarr[][]={{12,2},{43,45}}; 注意,写成intmyarr[][]={12,2,43,45}是错误的。

接下来,通过两段小的代码来解释如何使用一维数组和二维数组。

第一个例子是使用一维数组将1~12月各月的天数输出。代码如下:

public class shuZu{ public static void main(String[] args){   int day[]=new int[]{31,28,31,30,31,30,31,31,30,31,30,31};   for (int i=0;i<12;i++){
     System.out.println((i+1)+"月有"+ day[i]+"天");
     }    
   }
 }

第二个例子是使用二维数组将数组中的元素输出。代码如下:

public class shuZu{public static void main(String args[]){ int arr[][]=new int[][]{{1},{2,3},{4,5,6}}; for(int i=0;i<arr.length;i++){   for(int j=0;j<arr[i].length;j++){
     System.out.print(arr[i][j]);
     }
     System.out.println();
   }
 }
 }

简单介绍了一下数组的基本内容,接下来讲解一下经典的数组冒泡排序算法。

冒泡排序原理:相邻的两位数做比较,1和2比较 2和3比较 3和4比较 4和5比较,这样依次比较,如果前面的数小于后面的,不做操作,如果前面的数大于后面的数则调换两个数字的位置,列1>2 则数字顺序为2 1(注:此时的1 2 3 4 5代表索引而不是数组),所以一层循环能挑出一个当前数组参与比较数字中的最大的数字,并将其排到数组的最末尾。
但是一层循环根本不够用,只能挑选出一个最大数,数组中其他的数字还没有正确排序。
这里遵循一个原理就是数组里面有length个数字,要进行length-1次循环。至于为什么要this.length-i,是因为第一次比较7个数字,第二个只要比较前6个就行了,第7个肯定是最大的了。这里要着重强调为什么会有2个for循环,为什么要用this.length-i。

下面用一个例子来做详细的说明:

var array = [8,7,9,2,3,5,6,1]; 
var temp = 0; 
function sort(arr){    for (var i = 0; i < arr.length; i++){     //这里的i控制循环比较的次数
       for (var j = 0; j < arr.length - i; j++){      //这里的j控制参与比较的数字个数,因为每比较一次都会产生一个最大的数字,
      //那么下次比较的时候就没必要参与比较了,所以每比较一次都会减少一个数字
          if (arr[j] > arr[j + 1]){
               temp = arr[j + 1];
               arr[j + 1] = arr[j];
               arr[j] = temp;      
           }
    }
  }
 } 
console.log('before: ' + array);//输出[8,7,9,2,3,5,6,1] sort(array); 
console.log(' after: ' + array);//输出[1,2,3,5,6,7,8,9]

java创建数组的方法及使用

var array = [8,7,9,2,3,5,6,1]; 
var temp = 0; 
function sort(arr){    for (var i = 0; i < arr.length; i++){     //这里的i控制循环比较的次数
       for (var j = 0; j < arr.length - i; j++){      //这里的j控制参与比较的数字个数,因为每比较一次都会产生一个最大的数字,
      //那么下次比较的时候就没必要参与比较了,所以每比较一次都会减少一个数字
          if (arr[j] > arr[j + 1]){
               temp = arr[j + 1];
               arr[j + 1] = arr[j];
               arr[j] = temp;      
           }
    }
  }
 } 
console.log('before: ' + array);//输出[8,7,9,2,3,5,6,1] sort(array); 
console.log(' after: ' + array);//输出[1,2,3,5,6,7,8,9]

java创建数组的方法及使用

var array = [8,7,9,2,3,5,6,1]; 
var temp = 0; 
function sort(arr){    for (var i = 0; i < arr.length; i++){     //这里的i控制循环比较的次数
       for (var j = 0; j < arr.length - i; j++){      //这里的j控制参与比较的数字个数,因为每比较一次都会产生一个最大的数字,
      //那么下次比较的时候就没必要参与比较了,所以每比较一次都会减少一个数字
          if (arr[j] > arr[j + 1]){
               temp = arr[j + 1];
               arr[j + 1] = arr[j];
               arr[j] = temp;      
           }
    }
  }
 } 
console.log('before: ' + array);//输出[8,7,9,2,3,5,6,1] sort(array); 
console.log(' after: ' + array);//输出[1,2,3,5,6,7,8,9]

本文地址:百科问答频道 https://www.neebe.cn/wenda/886426.html,易企推百科一个免费的知识分享平台,本站部分文章来网络分享,本着互联网分享的精神,如有涉及到您的权益,请联系我们删除,谢谢!


百科问答
小编:小易整编
相关文章相关阅读
  • JS 字符串转数组

    JS 字符串转数组

    JS中,将一个字符串转置为数组,使用到的方法是split(),通过使用split()方法,可以轻松的将一个字符串转换为数组操作方法01新建一个HTML文档,用于承载JS02...

  • 用java开发的游戏有哪些 java架构开发的游戏推荐2023

    用java开发的游戏有哪些 java架构开发的游戏推荐2023

    java是一种非常实用的计算机语言,正因如此也把它使用在了游戏设计中,那么用java开发的游戏有哪些呢?本期小编就将带各位小伙伴了解一下相关的内容,这项有用的技术被应用到各种不同种类的游戏制作和设计中,增加了游戏的体验感,这些游戏都具有自己...

  • 如何安装java,java安装教程

    如何安装java,java安装教程

    如何安装java,java安装教程一·下载JAVA安装包并安装1.首先去官网下载JAVA安装包,JAVA安装包下载地址:https://www.oracle点com/technetwork/java/javase/downloads/ind...

  • classpath环境变量作用,Java环境变量classpath的作用

    classpath环境变量作用,Java环境变量classpath的作用

    classpath环境变量作用,Java环境变量classpath的作用环境变量环境变量(environmentvariables)一般是指在操作系统中用来指定操作系统运行环境的一些参数,如:临时文件夹位置和系统文件夹位置等。环境变量是在操...

  • 如何声明数组,声明数组的几种方式

    如何声明数组,声明数组的几种方式

    如何声明数组,声明数组的几种方式本节介绍数组的基础知识,包括数组的分类,以及如何声明数组。关于数组的内容相对抽象,会尽量介绍详尽。一、数组的分类1、按维度划分在上节中已经具体的介绍了VBA数组维度的概念。那么可以通过维度来划分数组,在VBA...

  • 如何数组合并,JavaScript合并数组的三种方法

    如何数组合并,JavaScript合并数组的三种方法

    如何数组合并,JavaScript合并数组的三种方法数组作为一种数据结构,表示索引项的有序集合。经常会使用到数组,尤其是将多个数组进行合并,比如将数组[1,2,3]和数组[4,5,6]合并,最终得到数组[1,2,3,4,5,6]。数组的合并...

  • 怎么解析xml文件,java解析xml文件的几种方式

    怎么解析xml文件,java解析xml文件的几种方式

    怎么解析xml文件,java解析xml文件的几种方式一、为什么使用xml文件便于不同应用程序之间通信。便于不同平台之间通信。便于不同平台之间数据共享。二、读取xml的方式xml测试文件内容如下:

  • 回到顶部如何实现,JavaScript实现回到顶部功能的五种方法

    回到顶部如何实现,JavaScript实现回到顶部功能的五种方法

    回到顶部如何实现,JavaScript实现回到顶部功能的五种方法回到顶部的功能现在基本上是网页的标配了,当你已经浏览到页面底部时,一键返回顶部的功能确实非常方便。随着用户习惯的养成,这个功能都是页面必备的。那么作为一个前端开发者,我们如何实...

  • 周排行
  • 月排行
  • 年排行

精彩推荐