首页 > 其他分享 >数组

数组

时间:2023-07-17 22:33:03浏览次数:32  
标签:10 arr int double 数组 new

数组是什么?

数组可存放多个同一类型的数据。数组也是一种数据类型,是引用类型。【数组:一种数据类型,存储一组相同类型的数据

数组的定义方式

方式一:动态初始化

数据类型  数组名【】 = new  数据类型【数据的容量大小】

//方式1:
int[] a = new int[10];
//一个名为a的数组,存储int类型的数据,可存放10个int型数据
double[] b = new double[20];
//一个名为b的数组,存储double类型的数据,可存放20个double型数据

方式二:静态初始化

数据类型  数组名【】 = {数据常量1,数据常量2,......,数据常量n}

//方式2:
int[] a = {1,2,3,4,5};
//一个名为a的数组,存储int类型的数据。
//存放了5个int型数据,分别为1 2 3 4 5

double[] b = {1.1,2.2,3.3};
//一个名为b的数组,存储double类型的数据。
//存放了3个double型数据,分别为1.1  2.2  3.3

数组的访问

下标访问:数组名【索引】(可以对其进行操作)

int[] a = {1,2,3,4,5};
a[0] = 10;
// a --- { 10 , 2 , 3 , 4 , 5}

double[] b = {1.1,2.2,3.3};
b[1] = 1.1;
// b --- { 1.1 , 1.1 , 3.3}

数组使用注意事项和细节

1.数组只能存放相同类型的数据

int[] arr1 = {1,'a',1.1};  // X 严重错误
int[] arr2 = {1,2,3,4,5};  // √ 
char[] arr3 = {'a','b','c'}; // √

2.数组可以是任何数据类型,包括基本类型和引用类型,但是不能混用。

int[] arr_int = new int[5]; 
double[] arr_double = new double[5]; 
String[] arr_String = new String[5];

3.数组创建后,若没有对其赋值,其存在默认值

int

0

short

0

byte

0

long

0

float

0

double 

0.0

char

\u0000(等价于字符'\0')

boolean

false

String

null

//例如: (其他同理)
int[] arr = new int[3];
// arr --- { 0 , 0 , 0}

4.使用数组的步骤

  1. 声明数组并开辟空间
  2. 给数组各个元素赋值
  3. 使用数组

5.数组的下标是从0开始的。

6.数组下标必须在指定范围内使用,否则,会报错出现下标越界异常

//例如:
int[] arr=new int[5];
则有效下标为0-4
 
int[] arr1 = {1 , 2 , 3 , 4 , 5};
下标(索引)   对应的值
		0						1
		1						2
		2						3
		3						4
		4						5

7.数组属引用类型,数组型数据是对象(object)

数组赋值机制

数组_数组

int n1 = 10;
int n2 = n1;
n2 = 10;
//这里采用的是值传递---改变n2的值不会影响n1的值

//而数组不同 --- 引用传递
int[] arr1 = {1,2,3};
int[] arr2 = arr1; // arr1 中存储的数据本质是--数组地址
//也就是说 arr2将arr1的地址 拷贝了一份,放入arr2变量中
//arr1和arr2存储的地址是相同的,但地址所在的数据是没有改变的
arr2[0] = 0;
//所以arr2在对该地址上的内容进行操作时,会影响到arr1的值

冒泡排序

// 冒泡排序
		int[] arr = {9,8,7,6,5,4,3,2,1};
		int temp = 0;
		for (int i=0;i<arr.length;i++){
			for (int j=0;j<arr.length-1-i;j++){
				if (arr[j]>arr[j+1]){
					temp = arr[j];
          arr[j]=arr[j+1];
          arr[j+1]=temp;
				}
			}
		}
		// 输出 排序后的结果
		for (int i=0;i<arr.length;i++){
			System.out.print(arr[i]+" ");
}

二维数组

数组的定义方式

方式一:动态初始化

数据类型  数组名【】【】 = new  数据类型【容量】【容量】

//这三类二维数据定义方式均可行--推荐第一种
int[][] a1 = new int[2][3];
int[] a2[] = new int[2][3];
int a3[][] = new int[2][3];

方式二:静态初始化

数据类型  数组名【】【】 = {{数据常量},{数据常量}..}

// 1 0 0 0 0 0
// 0 1 0 0 0 0
// 0 0 1 0 0 0

int[][] arr = { {1,0,0,0,0,0} , {0,1,0,0,0,0} , {0,0,1,0,0,0} };

数组的经典练习题

例题一:(二维数组的生成)
// 动态初始化确定(列数不确定的情况)
// 1
// 2 2
// 3 3 3
int[][] arr = new int[3][]; //列数不确定
for (int i = 0;i < arr.length;i++){
	// 生成一维数组
	arr[i] = new int[i+1];
    // 对一维数组进行赋值
    for (int j = 0;j < arr[i].length;j++){
    	arr[i][j] = i + 1;
    }
}
例题二:(杨辉三角)
		//使用二维数组打印一个10行杨辉三角1
		//1 
		//1 1
		//1 2  1
		//1 3  3  1 
		//1 4  6  4 1
		//1 5 10 10 5 1
    //......
		//规律
		//1. 第一行有1个元素,第n行有n个元素
		//2.每一行的第一个元素和最后一个元素都是1
		//3.从第三行开始,对于非第一个元素和最后一个元素的元素的值. 
		//4. arr[i][j]arr[i][j] = arr[ i-1][j] + arr[i-1][j-1];
        //必须找到这个规律
        row = 10; //需要得到的杨辉三角的行数
		int[][] arr = new int[row][];
		for (int i=0;i<arr.length;i++){
			yanghui[i] = new int[i];
			for (int j=0;j<arr[i].length;j++){
				if (j==0 || j==arr[i].length-1){
					arr[i][j] = 1;
				}else{
					arr[i][j] = arr[i-1][j-1] + arr[i-1][j];
				}
			}
		}
		// 输出结果
		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();
		}
例题三:(空心金字塔)
		//实现打印任意阶数的空心金字塔 
    //以5阶为例
		//    *
		//   * *
		//  *   *
		// *     *
		//*********
//1.先打印一个矩形
		// ******
		// ******
		// ******
		// ******
		// ******
		for(int i = 1;i<=5;i++){
			System.out.println("******");
		}
//2.打印半个金字塔
		// *      	第一层1个*
		// **		第二层2个*
		// ***		第三层3个*
		// ****		第四层4个*
		// *****	第五层5个*
		for (int i=1;i<=5;i++){ 
			for (int j=1;j<=i;j++){
				System.out.print("*");
			}
			System.out.println();
		}
//3.打印整个金字塔
		//     *      	第一层1个*	2*层数-1 	4个空格   总层数-当前层数
		//    ***		第二层3个*	2*层数-1	3个空格   总层数-当前层数
		//   *****		第三层5个*	2*层数-1	2个空格   总层数-当前层数
		//  *******		第四层7个*	2*层数-1	1个空格   总层数-当前层数
		// *********	第五层9个*	2*层数-1	0个空格   总层数-当前层数
		for (int i=1;i<=5;i++){ 
			//打印空格
			for (int j=1;j<=5-i;j++){
				System.out.print(" ");
			}
			for (int j=1;j<=2*i-1;j++){
				System.out.print("*");
			}
			System.out.println();
		}
//4.实现目标
		//     *        第一层1个*	
		//    * *		第二层2个*	
		//   *   *		第三层2个*	
		//  *     *		第四层2个*	
		// *********	第五层9个*	
		for (int i=1;i<=5;i++){ 
			//打印空格
			for (int j=1;j<=5-i;j++){
				System.out.print(" ");
			}
			for (int j=1;j<=2*i-1;j++){
        //在当前行中(除最后一行),第一个位置和最后一个位置才会打印*号
        //最后一行需要全部打印*号
				if(j==1 || j == 2*i-1 || i==5){
					System.out.print("*");
				}else{
					System.out.print(" ");
				}
			}
			System.out.println();
		}
//对阶数进行控制---达到任意阶数
		int index = 5;
		for (int i=1;i<=index;i++){ 
			//打印空格
			for (int j=1;j<=index-i;j++){
				System.out.print(" ");
			}
			for (int j=1;j<=2*i-1;j++){
        //在当前行中(除最后一行),第一个位置和最后一个位置才会打印*号
        //最后一行需要全部打印*号
				if(j==1 || j == 2*i-1 || i==index){
					System.out.print("*");
				}else{
					System.out.print(" ");
				}
			}
			System.out.println();
		}
 //例:
//index = 10; 
//         *
//        * *
//       *   *
//      *     *
//     *       *
//    *         *
//   *           *
//  *             *
// *               *
//*******************











标签:10,arr,int,double,数组,new
From: https://blog.51cto.com/u_16188762/6754470

相关文章

  • java Array工具类构建数组
    JavaArray工具类构建数组在Java编程中,数组是一种重要的数据结构,它可以用于存储和操作一组相同类型的数据。在构建数组时,我们可以使用Java的Array工具类来帮助我们更轻松地创建和操作数组。本文将介绍如何使用JavaArray工具类来构建数组,并提供一些常用的示例代码。1.导入Array......
  • Java数组
    Java数组数组概述数组的定义数组是相同类型数据的有序结合数组描述的是相同类型的若干个数据,按照一定的先后次序排列组合而成其中,每一个数据称作一个数组元素,每个数组元素可以通过一个下标来访问他们数组声明创建首先必须声明数组变量,才能在程序中使用数组.下面是声明......
  • js最简代码获取多个数组的交集
    直接上代码!//定义三个数组leta=[1,3,5,7,9];letb=[1,2,4,5,7];letc=[1,3,5,8,7];constgetIntersection=(a,...array)=>{//...array表示可以传入多个数组 returna.filter(item=>array.every(elem=>elem.includes(item)))}letnewArray=getIntersection(a......
  • js数组去重
    constarr=[1,1,'true','true',true,true,15,15,false,false,undefined,undefined,null,null,NaN,NaN,'NaN',0,0,'a','a',{},{}]1、indexoffunctionunique(arr){constresult=[]for(leti=0,len=arr......
  • java怎么将json数组设置编码格式
    项目方案:JavaJSON数组编码格式设置1.项目背景和目标本项目旨在探讨如何使用Java编程语言将JSON数组设置为指定的编码格式。JSON(JavaScriptObjectNotation)是一种常用的数据交换格式,它使用文本格式来表示数据,易于人类阅读和编写,同时也易于机器解析和生成。在实际项目中,我们经常......
  • Vue3 遍历显示Json数组
    在Vue项目中遍历显示Json数组以列表的形式显示的页面上 main.js全局json对象//全局jsonconstglobalData=reactive({extTelTalkData:[{userExten:"1000",userName:"刘亦菲",callStatus:"通话"},......
  • NO35、数组中的逆排序(建议再刷)
    35、数组中的逆排序很好的题目,建议再刷在数组中的两个数字,如果前面一个数字大于后面的数字,则这两个数字组成一个逆序对。输入一个数组,求出这个数组中的逆序对的总数P。并将P对1000000007取模的结果输出。即输出P%1000000007输入描述:题目保证输入的数组中没有的相同的数字数据范......
  • js 数组join,内容用序号连接
    要将数组内容用序号连接,你可以使用JavaScript的`Array.prototype.map()`方法和`Array.prototype.join()`方法来实现。下面是一个示例代码:```javascriptconstarr=["apple","banana","orange"];constjoinedString=arr.map((item,index)=>`${index+1}.${item}`)......
  • 数组
    数组一维数组的定义:类型说明符数组名[常量表达式];int[10]注意:定义数组的时候不能动态定义intn;scanf("%d",&n);inta[n];//c语言编译时就要储存一个数组的内存.不运行后期添加数组内存一些书写格式上的问题//遍历下标变量.输出数组for(i=0;......
  • Java数组
    Java数组数组的定义数组是相同类型数据的有序集合。数组描述的相同类型的若干个数据,按照一定的先后次序排列组合而成。其中,每一个数据称作一个数组元素,每个数组元素可以通过一个下标来访问它们。数组声明创建首先必须声明数组变量,才能在程序中使用数组。下面是声明数组......