数组——JAVA

@月月鸟

只为成功找方法,不为失败找借口!

在这里插入图片描述

一.数组的基本概念

  • 数组可以看成是多个相同类型数据组合,对这些数据的统一管理。
  • 数组变量属引用类型,数组也可以看成是对象,数组中的每个元素相当于该对象的成员变量。
  • 数组的元素可以是任何数据类型,包括基本类型和引用类型。
  • C和C++中的数组都可以分配在栈上面,而JAVA中的数组是只能分配在堆上面的,因为JAVA中的数组是引用类型。

二.一维数组

一维数组的声明方式有2种:
-格式一:数组元素类型 数组名[ ]; 即type var[ ];
-格式二:数组元素类型[ ] 数组名; 即type[ ] var;

例如:

int a1[ ];   int[ ] a2;

       double b[ ];

       person[ ] p1;  String s1[ ];

注意:

JAVA语言中声明数组时不能指定其长度(数组中的元素个数)
如:int a[5]; 这样声明一维数组是非法的。

三.数组的模型

  • 一维数组:一维数组就是一行,一行小格。
  • 二维数组:二维数组就是一行加一列组成的一个平面分成的小格,有行有列。
  • 三维数组:三维数组就是一个立方体。
  • 人类对最多认识到三维空间。

四 . 数组对象的创建

JAVA中使用关键字new创建数组对象。

格式为:数组名 = new 数组元素的类型[数组元素的个数]

示例

这里插入图片描述
在这里插入图片描述

五.元素为引用数据类型的数组

  注意:元素为引用数据类型的数组中的每一个元素都需要实例化。
  class Date{

      int year; int moth; int day;

      Date(int y; int m, int d){

        year=y ;

    month=m ;

    day=d ;

  }

}

在这里插入图片描述

六.数组的初始化

1.动态初始化
    数组定义与为数组元素分配空间和赋值的操作分开进行。
    
  public class Test{
    	public static void main(String args[ ]){
    	
    	//定义数组,即声明一个int类型的数组a[ ]
    	int	 a[ ];  
    	
		//给数组元素分配内存空间。
    	a=new int[3]; 

		//给数组元素赋值。
    	a[0]=3; a[1]=9; a[2]=8; 
    	
	    Date days[ ];
	    days=new Date[3];
	    days[0]=new Date(1, 4, 2004);
	    days[1]=new Date(2, 4, 2004);
	    days[2]=new Date(3, 4, 2004);
	    } 
	}

	class Date{
	    int year, month, day;
	    Date(int y, int m, int d){
	        year = y ;	
	        month = m ;
	        day = d ;
	    }
	}


2.静态初始化
       在定义数组的同时就为数组元素分配空间并赋值。
       
  	  puclic class Test{
       	 public static void main(String args[ ]){

			//在定义数组的同时给数组分配空间并赋值。
            int a[ ] = { 3, 9, 8};   
            Date days[ ] = {
                new Date(1, 4, 2004),
                new Date(2 ,4 ,2004),
                new Date(3 ,4, 2004)
		        };
		    }
		}
		class Date{
		    int year, month, day;
		    Date(int y, int m, int d){
		        year = y ;
		        month = m ;
		        day = d ;
		    }
		}

七.数组元素的引用

  1. 定义并用运算符new为之分配内存空间后,才可以引用数组中的每个元素,数组元素的引用方式为:arrayName[index], index为数组元素下标,可以是整型常量或整型表达式。如:a[3], b[i], c[6*i]。

  2. 数组元素下标从0开始;长度为n的数组的合法下标取值范围为0 ~ n—1。

  3. 每个数组都有一个属性length指明它的长度,例如:a.length的值为数组a的长度(元素个数)。

八.二维数组

二维数组
在这里插入图片描述
二维数组初始化
在这里插入图片描述在这里插入代码片

九 . Arrays工具类

使用Arrays工具类,要先导入包即:import.java.util.Arrays

以下是实现六种功能的方法:

1、比较两个数组值是否相等: 结果为true、false.(布尔型不能比较)

   int []a={10,20,30};
   int []b={10,20,30};
   int []c={1,2,3};
   boolean isEqual=Arrays.equals(a,b);
   System.out.println(isEqual);
   System.out.println(Arrays.equals(a,c));

//如果是字符串:

String[]s1={“ab”,”c”,”d”,”e”};
	Arrays.sort(s1);
	For(String s:s1){
     	System.out.println(s);
}

2、fill方法:把整个数组里的每一个元素的值进行替换为val。(void fill(Arrays,val))

 3、BinarySearch:找到元素在数组当中的下标。

	String[]s3={“a”,”b”,”c”,”d”,”e”,”w”};
	   Int index=Arrays.binarySearch(s3,”g”);
  	   System.out.println(“该元素的下标是:”+index);

4、toString方法是把数组转换成字符串进行输出。(参数是数组,返回的是字符串)

 	  int[] a1={1,2,3,4};
 	  System.out.println(Arrays.toString(a1));
即:【 String s1=Arrays.toString(a1);
      System.out.println(s1);】
	
5、copyof把一个数组复制出一个新数组(新数组的长度为length)

	int[]ints1={11,22,33,44};
	int[]ints2=Arrays.coypOf(ints1,2);
	System.out.println(Arrays.toString(ints2));

6、sort方法,把数组中的元素按升序排序。【参数:除了布尔型都可以,类也可以】

例,输入六个数字,实现正序排列和倒序排列,并求其数字和

     Scanner input = new Scanner(System.in);
		int[] score=new int[6];
		int sum=0;

//让用户输入6个数字

	for(int i=0;i<score.length;i++){
			System.out.println("请输入第"+(i+1)+"个数字");
		score[i]=input.nextInt();
		sum+=score[i];
	}

//sort:从小到大排序

	Arrays.sort(score);
		for(int i:score){
		System.out.println(i);
}  

//sort:从大到小排序

	Arrays.sort(score);

		for(int i=score.length-1;i>=0;i--){
		System.out.println(score[i]);

		}System.out.println(sum);

计算机内存分配示意图

在这里插入图片描述

以上是数组的一些简单介绍,以上内容可能会有出入,部分出自转载,欢迎大家踊跃留言指正。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
资源包主要包含以下内容: ASP项目源码:每个资源包中都包含完整的ASP项目源码,这些源码采用了经典的ASP技术开发,结构清晰、注释详细,帮助用户轻松理解整个项目的逻辑和实现方式。通过这些源码,用户可以学习到ASP的基本语法、服务器端脚本编写方法、数据库操作、用户权限管理等关键技术。 数据库设计文件:为了方便用户更好地理解系统的后台逻辑,每个项目中都附带了完整的数据库设计文件。这些文件通常包括数据库结构图、数据表设计文档,以及示例数据SQL脚本。用户可以通过这些文件快速搭建项目所需的数据库环境,并了解各个数据表之间的关系和作用。 详细的开发文档:每个资源包都附有详细的开发文档,文档内容包括项目背景介绍、功能模块说明、系统流程图、用户界面设计以及关键代码解析等。这些文档为用户提供了深入的学习材料,使得即便是从零开始的开发者也能逐步掌握项目开发的全过程。 项目演示与使用指南:为帮助用户更好地理解和使用这些ASP项目,每个资源包中都包含项目的演示文件和使用指南。演示文件通常以视频或图文形式展示项目的主要功能和操作流程,使用指南则详细说明了如何配置开发环境、部署项目以及常见问题的解决方法。 毕业设计参考:对于正在准备毕业设计的学生来说,这些资源包是绝佳的参考材料。每个项目不仅功能完善、结构清晰,还符合常见的毕业设计要求和标准。通过这些项目,学生可以学习到如何从零开始构建一个完整的Web系统,并积累丰富的项目经验。
资源包主要包含以下内容: ASP项目源码:每个资源包中都包含完整的ASP项目源码,这些源码采用了经典的ASP技术开发,结构清晰、注释详细,帮助用户轻松理解整个项目的逻辑和实现方式。通过这些源码,用户可以学习到ASP的基本语法、服务器端脚本编写方法、数据库操作、用户权限管理等关键技术。 数据库设计文件:为了方便用户更好地理解系统的后台逻辑,每个项目中都附带了完整的数据库设计文件。这些文件通常包括数据库结构图、数据表设计文档,以及示例数据SQL脚本。用户可以通过这些文件快速搭建项目所需的数据库环境,并了解各个数据表之间的关系和作用。 详细的开发文档:每个资源包都附有详细的开发文档,文档内容包括项目背景介绍、功能模块说明、系统流程图、用户界面设计以及关键代码解析等。这些文档为用户提供了深入的学习材料,使得即便是从零开始的开发者也能逐步掌握项目开发的全过程。 项目演示与使用指南:为帮助用户更好地理解和使用这些ASP项目,每个资源包中都包含项目的演示文件和使用指南。演示文件通常以视频或图文形式展示项目的主要功能和操作流程,使用指南则详细说明了如何配置开发环境、部署项目以及常见问题的解决方法。 毕业设计参考:对于正在准备毕业设计的学生来说,这些资源包是绝佳的参考材料。每个项目不仅功能完善、结构清晰,还符合常见的毕业设计要求和标准。通过这些项目,学生可以学习到如何从零开始构建一个完整的Web系统,并积累丰富的项目经验。
08-10
资源包主要包含以下内容: ASP项目源码:每个资源包中都包含完整的ASP项目源码,这些源码采用了经典的ASP技术开发,结构清晰、注释详细,帮助用户轻松理解整个项目的逻辑和实现方式。通过这些源码,用户可以学习到ASP的基本语法、服务器端脚本编写方法、数据库操作、用户权限管理等关键技术。 数据库设计文件:为了方便用户更好地理解系统的后台逻辑,每个项目中都附带了完整的数据库设计文件。这些文件通常包括数据库结构图、数据表设计文档,以及示例数据SQL脚本。用户可以通过这些文件快速搭建项目所需的数据库环境,并了解各个数据表之间的关系和作用。 详细的开发文档:每个资源包都附有详细的开发文档,文档内容包括项目背景介绍、功能模块说明、系统流程图、用户界面设计以及关键代码解析等。这些文档为用户提供了深入的学习材料,使得即便是从零开始的开发者也能逐步掌握项目开发的全过程。 项目演示与使用指南:为帮助用户更好地理解和使用这些ASP项目,每个资源包中都包含项目的演示文件和使用指南。演示文件通常以视频或图文形式展示项目的主要功能和操作流程,使用指南则详细说明了如何配置开发环境、部署项目以及常见问题的解决方法。 毕业设计参考:对于正在准备毕业设计的学生来说,这些资源包是绝佳的参考材料。每个项目不仅功能完善、结构清晰,还符合常见的毕业设计要求和标准。通过这些项目,学生可以学习到如何从零开始构建一个完整的Web系统,并积累丰富的项目经验。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值