数组的基本使用

本文介绍了Java中数组的基本概念、声明与使用,包括数组的声明、初始化和赋值。通过实例展示了如何读取用户输入并存储到数组中,以及计算平均分、查找特定值和找出最大值。此外,还详细讲解了插入排序和冒泡排序的实现过程,最后演示了Arrays工具类的使用,如数组比较、排序、填充和查找元素的方法。
摘要由CSDN通过智能技术生成

知识点:

为什么需要数组

数组是一个变量,存储相同数据类型的一组数据

声明一个变量就是在内存空间划出一块合适的空间
声明一个数组就是在内存空间划出一串连续的空间

数组基本要素

标识符 [ ]
数组元素
元素下标:从0开始
元素类型

如何使用数组

int[ ] a=new int[5];

声明数组并分配空间

数据类型[ ] 数组名 = new 数据类型[大小] ;

数组赋值:边声明边赋值

int[ ] scores = {89, 79, 76};

int[ ] scores = new int[ ]{89, 79, 76};


练习代码:

	public static void main(String[] args) {
		int [] a={1,2,3};
		int b[]=new int[5];
		Scanner sc = new Scanner(System.in);
		for(int i=0;i<5;i++) {
			b[i]=sc.nextInt();
		}
	}
	public static void main(String[] args) {
		int a[]=new int[5];
		int sum=0;
		Scanner sc = new Scanner(System.in);
		for(int i=0;i<5;i++) {
			a[i]=sc.nextInt();
			sum+=a[i];
		}
		double avg=sum/5;
		System.out.println(avg);
	}

	public static void main(String[] args) {
		int a[]= {8,4,2,1,23,344,12};
		int sum=0;
		Scanner sc = new Scanner(System.in);
		int n=sc.nextInt();
		for(int i=0;i<a.length;i++) {
			System.out.println(a[i]);
			sum+=a[i];
			if(n==a[i]) {
				System.out.println("中奖了");
			}
		}
	}
	public static void main(String[] args) {
		int a[]=new int[5];
		int b=0;
		Scanner sc = new Scanner(System.in);
		System.out.println("输入5名学生的成绩:");
		for(int i =0;i<a.length;i++) {
			a[i]=sc.nextInt();
			if(b<a[i]) {
				b=a[i];
			}
		}
		System.out.println(b);
	}

插入排序:

//插入排序
	public static void main(String[] args) {
		//定义一个长度为6的数组
		int list[] = new int[6];
		list[0] =99;
		list[1] =85;
		list[2] =82;
		list[3] =63;
		list[4] =60;
		//保存新增成绩插入的位置
		int index=0;
		System.out.println("请输入新增成绩:");
		Scanner input = new Scanner(System.in);
		int num = input.nextInt();
		//找到新元素的插入位置
		for (int i = 0; i < list.length; i++) {
			if(num>list[i]) {
				index = i; 
				break;
			}
		}
		//元素的后移处理
		for (int j = list.length-1; j >index; j--) {
			//index是下标开始的元素后移的一个位置
			list[j] = list[j-1];
		}
		list[index] = num; //数据的插入
		System.out.println("插入成绩的下标是:"+index);
		System.out.println("插入后的成绩信息是:");
		//循环输出目前数组中的元素
		for (int k = 0; k < list.length; k++) {
			System.out.print(list[k]+"\t");
		}
	}

冒泡排序:

public static void main(String[] args) {
		// 冒泡排序
		//创建数组并赋值
		int a[]= {7,8,9,2,4,5,6};
		//外层循环,比较的轮数
		for(int i=0;i<a.length-1;i++) {
			//内层循环,每一轮比较的次数
			for(int j=0;j<a.length-1-i;j++) {
				//判断,如果前面的数大于后面的数,就交换数据
				if(a[j]>a[j+1]) {
					//交换数据
					//定义第三个变量,把前面的值数据赋值给它
					int b=a[j];
					//把后面的值赋值给前面的数
					a[j]=a[j+1];
					//把第三个变量的值赋值给后面的数
					a[j+1]=b;
				}
			}
		}
		System.out.println("冒泡排序后的数据:");
		//foreach 循环遍历数组
		for(int i : a) {
			System.out.println(i);
		}
	}

public static void main(String[] args) {
		int a[]=new int[5];
		Scanner sc = new Scanner(System.in);
		for(int i=0;i<5;i++) {
			a[i]=sc.nextInt();
		}
		for(int i=0;i<4;i++) {
			for(int j=0;j<4-i;j++) {
				if(a[j]>a[j+1]) {
					int b=a[j];
					a[j]=a[j+1];
					a[j+1]=b;
				}
			}
		}
		System.out.println("学员成绩的降序排列:");
		for(int i=4;i>=0;i--) {
			System.out.println(a[i]);
		}
	}


Arrays工具类的使用:

	public static void main(String[] args) {
		//Arrays 数组的工具类
		int[] arr1 = { 10, 30, 20, 40, 50 };
		int[] arr2 = { 10, 20, 30, 40, 50 };
		int[] arr3 = { 10, 20, 30, 40, 50, 60 };
		System.out.println(Arrays.equals(arr1, arr2));
		System.out.println(Arrays.equals(arr1, arr3));

		Arrays.sort(arr1);
		for (int i = 0; i < 5; i++) {
			System.out.println(arr1[i]);
		}
		System.out.println("*******************");
		System.out.println(Arrays.toString(arr1));
		//void fill(array,val) 把数组array所有元素都赋值为val
		System.out.println("******************");
		Arrays.fill(arr1, 30);
		System.out.println(Arrays.toString(arr1));
	}

public static void main(String[] args) {
		//copyOf(array,length)
		//把数组array赋值成一个长度为length的新数组,返回类型和复制的数组一致
		int arr1[]= {10,50,40,30,100,20,25};
		int arr2[]=Arrays.copyOf(arr1, 8);
		System.out.println(Arrays.toString(arr2));
		System.out.println("***************");
		//int binarySearch(array,val)
		//查询元素值val在数组array中的下标(要求数组中元素已经按照升序排序)
		Arrays.sort(arr2);
		System.out.println(Arrays.toString(arr2));
		int index=Arrays.binarySearch(arr2, 65);
		System.out.println(index);
	}
 public static void main(String[] args) {
        char zifu[]={'a','c','u','b','e','p','f','z'};
        System.out.print("原字符序列:");
        System.out.println(Arrays.toString(zifu));
        Arrays.sort(zifu);
        System.out.println();
        System.out.print("升序排序后:");
        
        System.out.println(Arrays.toString(zifu));
        
        int weizhi=Arrays.binarySearch(zifu, 'b');
        System.out.println();
        System.out.println("'b'在升序后数组中的位置是:"+weizhi);
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

晚点再动心

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值