J2SE学习笔记——第六节 java数组

6.1 数组简介
数组是java中最常见的一种数据结构,可用于存储多种数据。

6.2 数组定义
type [ ]arrayName;或者type arrayName[ ];
实例:int [ ]arr ; int arr[ ].

6.3数组的初始化
(1)静态初始化
格式 arrayName[ ]=new type[ ]{element1,element2,element3……}
实例:int arr[ ]=new int[ ]{1,2,3};

public class Demo4 {
	public static void main(String[] args) {
		//定义一个数组,并且静态初始化
		int arr[]=new int[] {1,2,3};
		
		//普通的遍历数组方式
		for(int i=0;i<arr.length;i++) {
			System.out.println(arr[i]);
		}
	}
}

Result:
1
2
3
(2)动态初始化
格式 arrayName=new type[length];
实例:int arr2[]=new int[3];

public class Demo5 {
	public static void main(String[] args) {
		//定义一个数组,然后动态初始化,长度为3
		int arr[]=new int[3];
		for(int i:arr) {
			System.out.println(i);
		}
	}
}

Result:
0
0
0
在这里插入图片描述
6.3 二维数组及多维数组
二维数组静态化初始化 格式:
arrayName[ ]=new type[ ]{{element1,element2},{element1,element2},{element1,element2}};
实例: int[ ][ ]arr=new int[ ][ ]{ {1,2,3} ,{4,5,6} ,7,8,9} };

二维数组动态化初始化 格式:
arrayName=new type[length][length];
实例: int [ ][ ]arr2=new int[3][3];
在这里插入图片描述

public class Demo6 {
	public static void main(String[] args) {
		//二维数组的静态初始化
		int [ ][ ]arr=new int[ ][ ] {{1,2,3},{4,5,6},{7,8,9}};
		for (int i=0;i<arr.length;i++) {
			for(int j=0;j<arr[0].length;j++) {
				System.out.print(arr[i][j]+" ");
			}
			System.out.println();
		}
		//二维数组的动态初始化
		int [ ][ ]arr2=new int[3][3];
		for(int i=0;i<arr2.length;i++) {
			for(int j=0;j<arr2[0].length;j++) {
				System.out.print(arr2[i][j]+" ");
			}
			System.out.println();
		}
	}
}

6.4 数组排序实例——起泡法
对4,21,0,-12,-3 排序 升序
原理:起泡法是从一端开始比较的,第一次循环就是把最大数放到最后一个位置,第二次循环就是把第二最大数放到倒数第二位置。整个过程就像烧开水一样,较小值像水中的气泡一样逐趟往上冒,每一趟都有一块“最大”的石头沉到水底。
在这里插入图片描述

public static void main(String[] args) {
		int temp;
		int [ ]arr= {4,21,0,-12,-3};
		//循环的次数n-1次
		for(int i=0;i<arr.length-1;i++) {
			//比较次数n-1-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:arr) {
			System.out.print(i+" ");
		}
	}

作业:
1.定义一个数组,获取数组中的最大值和最小值

public static void main(String[] args) {
		int []arr= {10,5,6,8,9,-6,-3,0};
		int i,min,max;
		min=arr[0];max=arr[0];
		System.out.print("数组arr的元素包括:");
		for(i=0;i<arr.length;i++) {
			System.out.print(arr[i]+" ");
			if(arr[i]>max) {
				max=arr[i];
			}
			if(arr[i]<min) {
				min=arr[i];
			}
		}
		System.out.println("\n数组的最大值是:"+max);
		System.out.println("数组的最小值是:"+min);
	}

2.定义一个由整数组成的数组,要求求出其中的奇数个数和偶数个数

int []arr= {10,5,6,8,9,-6,-3,0};
	int i,m=0,n=0;
	System.out.print("数组arr的元素包括:");
	for(i=0;i<arr.length;i++) {
		System.out.print(arr[i]+" ");
		if(arr[i]%2==0) {
			m++;
		}
		if(arr[i]%2!=0) {
			n++;
		}
	}
	System.out.println("\n偶数个数是:"+m);
	System.out.println("奇数个数是:"+n);

3.现在有如下一个数组:
int oldArr[]={1,3,4,5,0,0,6,6,0,5,4,7,6,7,0,5};
要求将以上数组中的0 项去掉,将不为0 的值存入一个新的数组;

int oldarr[]= {1,3,4,5,0,0,6,6,0,5,4,7,6,7,0,5};
	int j=0;
	System.out.println("数组newarr的元素包括: ");
	for(int i=0;i<oldarr.length;i++) {
		if(oldarr[i]!=0) {
			j++;//记录不为0的个数
		}
	}
		int []newarr=new int[j];//定义一个数组,长度为j,就是不为0的个数
		j=0;
		for(int i=0;i<oldarr.length;i++) {
			if(oldarr[i]!=0) {
				newarr[j]=oldarr[i];
				j++;
			}
		}
			for(int c:newarr) {
				System.out.print(c+" ");
			}
				System.out.println();

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值