Java数组

一维数组:

一、声明:
1.  数据类型[] 数组名;

2.数据类型 数组名[];

二、创建:

1.先声明后创建:数组名=new 数据类型[数组长度];

2.声明的同时创建数组:数据类型[] 数组名=new 数据类型[数组长度];

注意①:数组创建时必须指定数组长度。

       ②[]可以写在数据类型后面、也可写在数组名后面。

       ③数组在内存中分配的是一个连续的内存空间。

三、初始化:

例:int[] arr={1,2,3,8};

数组长度:arr.length

a.

package com;

public class Hello {

	public static void main(String[] args) {
		//声明一个整型数组
		int[] intArray;
		//声明一个字符串类型的数组
		String strArray[];
		//创建数组
		intArray=new int[5];
		strArray=new String[10];
		//声明数组的同时创建
		float[] floatArray=new float[4];
		//初始化数组
		char[] ch= {'a','b','c','d'};
		
		System.out.println("intArray数组的第2个元素是:"+intArray[1]);
		System.out.println("strArray数组的第5个元素是:"+intArray[4]);
		System.out.println("floatArray数组的最后一个元素是:"+floatArray[floatArray.length-1]);
		System.out.println("ch数组的长度是:"+ch.length);
	    //循环为整型数组赋值并输出
		System.out.println("整型数组intArray的元素为:");
		for(int i=0;i<5;i++) {
			intArray[i]=i+1;
			System.out.print(intArray[i]+" ");
		}
	}
		
}

b.

package com;

import java.util.Scanner;

public class Hello {

	public static void main(String[] args) {
		//求整型数组的累加和
		//定义整型数组
		int[] a=new int[5];
		//从键盘接受数组为数组元素赋值
		Scanner sc=new Scanner(System.in);
		for (int i = 0; i < a.length; i++) {
			System.out.println("请输入第"+(i+1)+"个元素:");
			a[i]=sc.nextInt();
		}
		System.out.println("数组内容是:");
		for (int i = 0; i < a.length; i++) {
			System.out.print(a[i]+" ");
		};
		//求数组元素的累加和
		int sum=0;
		for(int i=0;i<a.length;i++) {
			sum=sum+a[i];
		}
		System.out.println();
		System.out.println("数组元素的累加和是:"+sum);
	}	
}

c.求数组元素的最大值:

package com;

public class Hello {

	public static void main(String[] args) {
		//求数组元素的最大值
		int[] a= {43,92,80,12,34};
		int max=a[0];
		for (int i = 1; i < a.length; i++) {
			if (max<a[i]) {
				max=a[i];
			}
		}
		System.out.println("最大值是:"+max);

	}	
}

四、增强型for循环:
又叫foreach循环。

如:

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

for(int n:arr)   //数组是什么数据类型,就定义一个数据类型的变量

  System.out.println(n);

package com;

public class Hello {

	public static void main(String[] args) {
		int[] a= {1,2,3,4,5};
		System.out.println("使用增强新for循环输出数组内容:");
		for(int n:a) {
			System.out.print(n+" ");
		}
	}	
}

冒泡排序:

package com;

public class Hello {

	public static void main(String[] args) {
		//冒泡排序
		int[] a= {34,53,12,32,56,17};
		System.out.println("排序前的数组元素是:");
		for(int n:a) {
			System.out.print(n+" ");
		}
		System.out.println(" ");
		int temp;
		//外重循环控制比较趟数,n个元素会比较n-1趟
		for (int i = 0; i < a.length-1; i++) {
			/* 内重循环控制每趟排序,第一趟排序,每个元素两两比较,共比较5次。
			 * 每趟排序都会比上一趟少比较一次 */
			for (int j = 0; j < a.length-i-1; j++) {
				if(a[j]>a[j+1]) {
					temp=a[j];
					a[j]=a[j+1];
					a[j+1]=temp;
				}
			}
		}
		System.out.println("从小到大排序后的元素是");
		for(int n:a) {
			System.out.print(n+" ");
		}
	
	}	
}

二维数组:

package com;

public class Hello {

	public static void main(String[] args) {
		//二维数组的声明
		//声明int类型的二维数组
		int[][] intArray;
		//声明float类型数组的二维数组
		float[][] floatArray;
		//声明double类型的数组
		double[][] doubleArray;
		//创建一个三行三列的int类型的二维数组
		intArray=new int[3][3];
		System.out.println("intArray数组的第3行第2列的元素是:"+intArray[2][1]);   //数组的默认值是0
		//为第2行第3列的元素赋值
		intArray[1][2]=9;
		System.out.println("intArray数组的第2行第3列的元素是:"+intArray[1][2]);
		//声明数组的同时创建
		char[][] ch=new char[3][5];
		//创建float类型的数组时,只指定行数
		floatArray=new float[3][];
		//每行相当于一个一维数组,需要创建
		floatArray[0]=new float[3];  //第一行有3列
		floatArray[0]=new float[4];  //第一行有4列
		floatArray[0]=new float[5];  //第一行有5列
		System.out.println(floatArray[0][0]);
		//二维数组的初始化
		int[][] num= {{1,2,3},{4,5,6},{7,8,9}};
		System.out.println("num数组第1行第2列的元素是:"+num[0][1]);
		System.out.println("num数组的行数是:"+num.length);
		System.out.println("num数组的列数是:"+num[0].length);
		int[][] num1= {{78,98},{65,75,63},{98}};
		System.out.println("num1数组的第1行的列数是:"+num1[0].length);
		//循环输出二维数组的内容
		for(int i=0;i<num1.length;i++) {
			for(int j=0;j<num1[i].length;j++) {
				System.out.print(num1[i][j]+" ");
			}
			System.out.println();
		}
	}	
}

创建二维数组时,列数可以省略,但行数不可以省略!

API:
排序:Arrays.sort(arr)

二分查找:Arrays.binary

        

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值