java第四章总结

第四章 数组

目录

第四章 数组

4.1 数组的概述

4.2 一维数组

4.2.1创建一维数组

4.2.2 初始化一位数组

4.2.3 获取数组长度

 4.2.4 使用一维数组

4.3 二维数组

4.3.1 创建二维数组

4.3.2 初始化二维数组

4.3.3 使用二维数组

​4.4 数组的基本操作

4.4.1 遍历数组

4.4.2 填充和批量替换数组元素

4.4.3  复制数组 

4.5 数组的排序

4.5.1 冒泡排序

 4.5.2 算法:选择排序

 4.5.3 Arrayas.Sort()方法

4.6 总结


4.1 数组的概述

1.数组的理解:数组(Array),是多个相同类型数据按一定顺 序排列的集合,并使用一个名字命名,

并通过编号的方式对这些数据进行统一管理。

4.2 一维数组

一维数组实质上是一组相同类型数据的线性集合

4.2.1创建一维数组

int arr[];//声明int型数组,数组中的每一个元素都是int型数值
double[]dou;//声明double型数组,数组中的每一个元素都是double型数值
数组名字=new 数组元素类型[数组元素的个数];

4.2.2 初始化一位数组

int a[]={1,2,3};//第一种方法
int b[]=new int[]{4,5,6};//第二种方法
int c[]=new int[3];//第三种方法
c[0]=7;//给第一个元素赋值
c[1]=8;//给第二个元素赋值
c[2]=9;//给第三个元素赋值

4.2.3 获取数组长度

package wu;

public class ketang36 {
	public static void main(String[] args) {//主函数
		char a[]= {'A','B','C','D'};//创建一堆数组
		System.out.println("数组a的长度为"+a.length);//输出数组a长度
		char b[]= a;//创建一堆数组b,直接等于数组a
		System.out.println("数组b的长度为"+b.length);//输出数组b的长度
	}

}

输出结果

 4.2.4 使用一维数组

package wu;

public class ketang37 {
	public static void main(String[] args) {
		int day[]=new int[] {31,28,30,31,30,31,30,31,30,31,30,31};
		//创建并初始一推数组
		for (int i=0;i<12;i++) {//利用循环将信息输出
			System.out.println((i+1)+"月有"+day[i]+"天");//输出语句
		}
		}

}

输出结果

4.3 二维数组

4.3.1 创建二维数组

声明二维数组:
int tdarr[][];
char[][] tdarr2;
为数组分配
int a[][];
a=new int[2][4];//直接分配行和列
int b[][];
b=new int[2][];//先分配行,不分配列
b[0]=new int[2];//给第一行分配列
b[1]=new int[2];//给第二行分配列

4.3.2 初始化二维数组

package wu;

public class ketang38 {
	public static void main(String[] args) {//主函数
		int tdarr[][]= {{1,3,5},{5,9,10}};/*第二种方法*/
		int tdarr2[][]=new int[][] {{65,55,12},{92,7,22}};/*第二种方法*/
		int tdarr3[][]=new int[2][3];/*第二种方法*///先给数组分配内存空间
		tdarr3[0]=new int[] {6,54,71};//给第一行分配一个一维数组
		tdarr3[1][0]=63;//给第二行第一列赋值为63
		tdarr3[1][1]=10;//给第二行第二列赋值为10
		tdarr3[1][2]=7;//给第二行第三列赋值为7
		
	}

}

创建三维,四维和五维

int a[][]=new int[3][4][5];//创建三维数组
char b[][][]=new char[6][7][8][9];//创建四维数组
double c[][][][]=new double[10][11][12][13][14];//创建五维数组

4.3.3 使用二维数组

package wu;

public class ketang39 {
	public static void main(String[] args) {
		char arr[][]=new char[4][];//创建一个4行的二维数组
		arr[0]=new char[] { '春', '眠', '不', '觉', '晓'};//为每一行赋值
		arr[1]=new char[] { '处', '处', '闻', '啼', '鸟'};//为每一行赋值
		arr[2]=new char[] { '夜', '来', '风', '语', '声'};//为每一行赋值
		arr[3]=new char[] { '花', '落', '知', '多', '少'};//为每一行赋值
		System.out.println("-----横版-----");//输出语句
		for(int i=0;i<4;i++) {//循环4行
			for(int j=0;j<5;j++) {//循环5列
				System.out.print(arr[i][j]);//输出数组的元素
			}
			if(i%2==0) {//判断是否偶数
				System.out.println(",");//输出逗号
			}else {//反之
				System.out.println("。");//输出句号
			}
		}
		System.out.println("\n-----竖版-----");//输出语句
		for(int j=0;j<5;j++) {//列变行
			for(int i=3;i>=0;i--) {//行变列,反序输出
				System.out.print(arr[i][j]);//输出数组中的元素
			}
			System.out.println();//换行
		}
			System.out.println("。,。,");//输出最后的标点
	}
	
}

输出结果

创建一个不规则的二维数组。

package wu;

public class ketang40 {
	public static void main(String[] args) {//主函数
		int a[][]=new int[3][];//创建二维数组,指定行数,不指定列数
		a[0]=new int[] {52,64,85,12,3,64};//第一行分配6个元素
		a[1]=new int[] {41,99,2};//第二行分配3个元素
		a[2]=new int[] {285,61,278,2};//第三行分配4个元素
		for(int i=0;i<a.length;i++) {//循环语句
			System.out.println("a["+i+"]中有"+a[i].length+"个元素,分别是:");//输出语句
			for(int tmp:a[i]) {//foreach循环输出数组中的元素
				System.out.print(tmp+" ");//数组中的元素输出空格
			}
			System.out.println();//输出换行
		}
	}

}

输出结果


4.4 数组的基本操作

4.4.1 遍历数组

public class Trap{
    public static void main(String[] args){
        int b[][]=new int[][]{{1},{2,3},{4,5,6}};//定义二维数组
        for(int k=0;k<b.length;k++){//循环遍历数组二维数组中的每一个元素
            for(int c=0;c<b.length;c++){//循环遍历数组二维数组中的每一个元素
                System.out.print(b[k][c]);//将数组中的元素输出
        }
        System.out.println();//输出换行
       }
    }
}

4.4.2 填充和批量替换数组元素

package wu;
import java.util.Arrays;
public class ketang42 {
	public static void main(String[] args) {//主函数
		int arr[]=new int[5];//创建int型数组
		Arrays.fill(arr, 8);//使用同一个值对数组进行填充
		for(int i=0;i<arr.length;i++) {//循环遍历数组中的元素
			System.out.println("第"+i+"个元素是:"+arr[i]);//将数组中的元素依次输出
		}
	}

}

运行结果

通过fill()方法替换数组元素 

package wu;

import java.util.Arrays;

public class ketang43 {
	public static void main(String[] args) {//主函数
		int arr[]=new int[] {45,12,2,77,31,91,10};//定义并初始化int型数组arr
		Arrays.fill(arr, 1,4,8);//使用fill、()方法对数组进行填充最后填冲不包括
		for(int i=0;i<arr.length;i++) {//玄幻遍历数组中的元素
			System.out.println("第"+i+"个元素是:"+arr[i]);//将数组中的每一个元素输出
		}
	}

}

运行结果

4.4.3  复制数组 

package wu;
import java.util.Arrays;

public class ketang44 {
	public static void main(String[] args) {//主方法
		int arr[]=new int[] {23,42,12};//定义数组
		int newarr[]=Arrays.copyOf(arr, 5);//复制数组arr
		for(int i=0;i<newarr.length;i++){//循环变量后的新数组
		System.out.println("第"+i+"个元素:"+newarr[i])	;//输出语句
		}
	}

}

运行结果

创建一维数组中的数复制到新数组 

package wu;

import java.util.Arrays;

public class ketang45 {
	public static void main(String[] args) {//主方法
		int arr[]=new int[] {23,42,12,84,10};//定义数组
		int newarr[]=Arrays.copyOfRange(arr, 0,3);//复制数组
		for(int i=0;i<newarr.length;i++) {//循环遍历复制后的新数组
			System.out.println(newarr[i]);//将数组中的每个元素输出
		}
	}

}

运行结果

4.5 数组的排序

4.5.1 冒泡排序

package wu;
/*
 * 冒泡排序方法 
 * @param  array
 * 要排序的数组 
 */
public class ketang46 {
	public void sort(int[] array) {//主函数
		for(int i=1;i<array.length;i++) {//循环遍历数组的元素
			for(int j=0;j<array.length-i;j++) {//比较相邻两个元素,较大的数往后冒泡
			if(array[j]>array[j+1]) {//如果前一个元素比后一个元素大,则两元素互换
				int temp=array[j];//把第一个元素值保存到临时变量中
				array[j]=array[j+1];//把第二个元素值保存到第一个元素单元中
				array[j+1]=temp;//把临近变量保存到第二个元素中
			}
		}
	}
		showArray(array);//输出冒泡排序后的数组元素
}
	/*
	 * 显示数组中的所有元素
	 * 
	 *@param array
	 *         要显示的数组
	 */
	 public void showArray(int[] array) {
		 System.out.println("冒泡排序的结果");
		 for(int i:array) {//遍历数组
			 System.out.print(i+" ");//输出每个数组元素值
		 }
		 System.out.println();//输出空格
	 }
	 public static void main(String[] args) {
		 int[] array= {63,4,24,1,3,15};//创建冒泡排序类的对象
		 ketang46 Sorter=new ketang46();//调用排序方法将数组排序
		 Sorter.sort(array);//输出语句
	 }
	}

运行结果

 4.5.2 算法:选择排序

package wu;
public class ketang47 {
	public void sort (int[] array) {
		int index;//定义int型index
		for (int i=1;i<array.length;i++) {//循环遍历数组
			index=0;//定义index为0
			for(int j=1;j<=array.length-i;j++) {//比较相邻的两个元素,较大的往后冒泡
				if(array[j]>array[index]) {//比较大小
				index=j;	//存放给index
				}
			}
		int temp=array[array.length-i];//把一个元素值保存到临时变量里
		array[array.length-i]=array[index];//将变量放在第二个元素中
		array[index]=temp;//把临时变量保存在第二发元素中
	}
	showArray(array);//输出冒泡排序后的数组元素
}
public void showArray(int[] array) {
	System.out.println("选择排序的结果为: ");//输出语句
	for(int i:array) {//输出遍历数组
		System.out.print(i+" ");//输出
	}
	System.out.println();
}
public static void main(String[] args) {
	
	int[] array= { 63, 4, 24, 1, 3, 15};//定义遍历数组
	SelectSort sorter=new SelectSort();//调用排序将数组排序
	sorter.sort(array);
}
}

运行结果

 4.5.3 Arrayas.Sort()方法

package wu;

import java.util.Arrays;

public class ketang48 {
	public static void main(String[] args) {//主方法
		int arr[]=new int[]{23,42,12,8};//声明数组
		Arrays.sort(arr);//将数组进行排序
		System.out.println("排序后的结果为");//输出语句
		for(int i=0;i<arr.length;i++) {//循环遍历排序后的数组
			System.out.println(arr[i]+" ");//将排序后的数组中的各个元素输出
		}
		}

}

4.6 总结

本章介绍了数组的创建及使用方法,重点是创建数组,数组赋值以及读取数组中的元素的值,Arrays类还是提供了其他操作数组的方法。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值