5、数组 数组工具类 二维数组

1、数组(Array)

1.1、概念

image-20210706102435570.

1.2、数组的创建

1.动态创建

int[] a=new int[5];//创建的数组有默认值  5是数组的长度,最大下标是4

2.静态创建

int[] a=new int[]{1,2,3,4,5};
int[] a={1,2,3,4,5};
1.3、练习:向数组中存入数据hello
package cn.tedu.Array;

import java.util.Arrays;

/**本类用于数组的创建和使用*/
public class TestCreateArray {

	public static void main(String[] args) {
		/**数组的下标从0开始,最大下标是数组的长度-1*/
		//1.静态创建
		char[] c1= {'h','e','l','l','o'};
		char[] c2=new char[] {'h','e','l','l','o'};
		
		//2.动态创建
		char[] c3=new char[5];
		c3[0]='h';
		c3[1]='e';
		c3[2]='l';
		c3[3]='l';
		c3[4]='o';
		
		System.out.println(c1);
		System.out.println(c2);
		System.out.println(c3);
		
		//3.创建一个String类型的数组
		String[] s= {"a","b","c"};
		/**关于数组的打印,char类型在底层做了处理,
		  可以直接打印数组中的具体值
		  但是除了char类型以外的数组需要打印元素内容需要借助数组工具类Arrays
		 * */
		System.out.println(s);//[Ljava.lang.String;@6d06d69c
		System.out.println(Arrays.toString(s));
		
		//4.获取数组的长度
		/**数组一旦创建,长度不可改变*/
		System.out.println(c1.length);
		System.out.println(s.length);
	}

}

数组一旦创建,长度不可改变

除了char类型以外的数组需要打印元素内容需要借助数组工具类Arrays.toString();

1.4、 练习:数组的遍历
package cn.tedu.Array;

import java.util.Arrays;
import java.util.Random;

/**本类用于练习数组的遍历*/
public class TestArrayExec {

	public static void main(String[] args) {
//		m1();
		m2();
		m3();
	}

	private static void m3() {
		int[] a=new int[10];
		for(int i=0;i<=a.length-1;i++) {
			a[i]=new Random().nextInt(10);
		}
		System.out.println(Arrays.toString(a));
		
	}

	private static void m2() {
		int[] a=new int[10];
		for(int i=0;i<=a.length-1;i++) {
			a[i]=i+1;
		}
		System.out.println(Arrays.toString(a));
		
	}

	private static void m1() {
		int[] a= {31,28,31,30,31,30,31,31,30,31,30,31};
		//循环变量i代表数组的下标
		for(int i=0;i<=a.length-1;i++) {
			System.out.println((i+1)+"月有"+a[i]+"天");		
		}
	}

}

2、数组工具类Arrays

2.1、Arrays的sort,toString方法
package cn.tedu.Array;
/**本类用于测试数组工具类Arrays的sort,toString方法*/
import java.util.Arrays;

public class TestArraysSort {

	public static void main(String[] args) {
		int[] a= {21,97,75,23,21};
		Arrays.sort(a);
		System.out.println(Arrays.toString(a));

	}

}
2.2、练习:Arrays. copyOf(数组,新的长度)

本方法不会修改原数组,是创建了一个新的数组

package cn.tedu.Array;

import java.util.Arrays;

/**本类用于测试数组工具类的copyOf()*/
public class TestArraysCopyOf {

	public static void main(String[] args) {
		int[] from= {1,2,3,4,5};
		int[] to=Arrays.copyOf(from, 5);
		int[] to2=Arrays.copyOf(from, 3);//缩容
		int[] to3=Arrays.copyOf(from, 7);//扩容
		int[] to4=Arrays.copyOfRange(from, 2,4);//指定首尾截取:[2,4)
		System.out.println(Arrays.toString(to));
		System.out.println(Arrays.toString(to2));
		System.out.println(Arrays.toString(to3));
		System.out.println(Arrays.toString(to4));

	}

}

3、冒泡排序

思路:

1、如果有n个数,最多比较n-1轮

2、每轮从头开始,之前比较出来的最大值不参与下一轮的比较

package cn.tedu.method;

import java.util.Arrays;

/**本类用于实现冒泡排序*/
public class BubbleSort {

	public static void main(String[] args) {
       int[] a= {27,96,73,25,21};	
       int[] b= {76,1,2,3,4};
       sortArray(b);

	}

	private static int[] sortArray(int[] a) {
		/**i代表的是比较的轮数,从1开始
		 * j代表的是数组的下标,从0开始*/
		for(int i=1;i<=a.length-1;i++) {
			boolean flag=false; 
			for(int j=0;j<a.length-i;j++) {  //-i每轮比较出来的最大值,下一轮就不需要再参与比较
				if(a[j]>a[j+1]) {
					int t=a[j];
					a[j]=a[j+1];
					a[j+1]=t;
					flag=true;
				}
			}
			if(flag==false) {
				return a;
			}
			System.out.println("第"+i+"轮比较的结果:"+Arrays.toString(a));
		}
		System.out.println(Arrays.toString(a));
		return a;
		
	}

}

weixin073智慧旅游平台开发微信小程序+ssm后端毕业源码案例设计 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。
python017基于Python贫困生资助管理系统带vue前后端分离毕业源码案例设计 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值