Java基础班 第五天(上 一维数组)

数组有两种创建方式,第一种方式可以分解,第二种方式不能分解;  有一个字符的数组创建 自己错了很多

数据只是一个容器,可以放基本数据类型,也可以引用数据类型;

数组里面讲了一些堆栈 内存的知识 自己没看 知道反转那个代码  三个引用 两个数组的代码

第一部分  一维数组

代码1,创建一个数组,自己真的是代码写的太少了,两次都没有写对

class  Demo1_array
{
	public static void main(String[] args) 
	{
		int[] arr;
		//arr = new[5];
		//arr = new arr[5];
		arr = new int[5];
		System.out.println(arr);
	}
}

代码2 也是创建数组,意思是初始化的正数数组中的每一个都是0,你可以赋值,赋值以后就不一样了,

代码3 数组只是一个容器,它和正数,浮点数什么的不一样,数组可以存储基本数据类型,也可以存储引用数据类型。这个代码里还介绍了,栈:存储局部变量  堆:存储new出来的数组和对象;方法区;这个代码和代码1没有什么区别

代码4:这个和代码1没什么区别

代码5:这个是三个引用 两个数组,所以a3数组的赋值是对a2数组是有影响的

class Demo5_Array 
{
	public static void main(String[] args) 
	{
		int[] a1;
		a1 = new int[3];
		int[] a2;
		a2 = new int[5];
		int[] a3;
		a3 = a2;

		a1[0]= 10;
		a1[1] =20;
		a2[1] = 30;
		a3[1] = 40;
		a3[2] = 50;
		System.out.println(a1[0]);
		System.out.println(a1[1]);
		System.out.println(a1[2]);
		System.out.println(a2[0]);
		System.out.println(a2[1]);
		System.out.println(a2[2]);
		System.out.println(a3[0]);
		System.out.println(a3[1]);
		System.out.println(a3[2]);
	}
}

代码6 这个是静态创建数组 前面 那个属于动态创建数组 

class Demo6_Array 
{
	public static void main(String[] args) 
	{
		//int[] a1;
		//a1=new int[]{1,2,3};
		//a1={1,2};
		int[] a1 = {1,2};

		System.out.println(a1[1]);
	}
}

在静态创建数组的时候,记住中括号里面是没有东西的,然后如果直接大括号赋值的时候,那么必须在一行简写,不能分两行

代码7,这个属于指针越界,自己不写了

代码8:这个是遍历数组,自己结合了前面的方法,用两种方式遍历了数组。

class Demo8_Array 
{
	public static void main(String[] args) 
	{
		int[] arr = {1,2,3};
		for(int i = 0;i<arr.length;i++){
			System.out.println(arr[i]);
		}
		System.out.println("Hello World!");
		print(arr);
	}
	public static void print(int[] a){
		for(int i = 0;i<a.length;i++){
			System.out.println(a[i]);
		}
	}
}

代码9 找到数组中最大的值  写这个代码的时候 自己int max的值得位置自己写错了,后来改正过。

class  Demo9_Array
{
	public static void main(String[] args) 
	{
		//System.out.println("Hello World!");
		int[] arr = {1,2,3};
		int n = getmax(arr);
		System.out.println(n);
	}
	public static int getmax(int[] a){
		int max = a[0];
		for(int i = 1;i<a.length;i++){
			//int max = a[0];
			if(a[i]>max){
				max = a[i];
			}
			
		}
		return max;
		}
}

代码10  这个里面有一个重要的思想就是数组是可以变得,对一个数组进行方法的转换以后,再用原来的名字调用数组,发现数组发生了改变,这个自己应该记住。数组的反转,这个里面注意一点,反转的次数是数组内元素的一半。

class Demo10_Array 
{
	public static void main(String[] args) 
	{
		System.out.println("Hello World!");
		int[] arr = {2,3};
		rever(arr);
		//print(arr);
		System.out.println(arr[0]);
	}
	public static void rever(int[] arr){
		for(int i = 0;i<arr.length/2;i++){
			int temp = arr[i];
			arr[i] = arr[arr.length-1-i];
			arr[arr.length-1-i]=temp;
		}
	}
}

代码11 这个是输出星期几的一个代码  自己看的时候就别扭,写的时候也出了问题,第一个问题,自己对于数组的理解还是不够深刻,在创建数组的时候采用了静态数组的创建,这种创建方法,需要里面都是字符,所以必须用单引号,双引号是不行的,。第二个问题,自己在写返回值得时候,还是不够清楚,必须是一个数组的名字再加上索引,自己写了一个数组的类型加上索引,这是什么操作,自己都搞不懂自己在写什么东西。

import java.util.Scanner;
class Demo11_Array 
{
	public static void main(String[] args) 
	{
		Scanner sc = new Scanner(System.in);
		int x = sc.nextInt();
		char y = getweek(x);

		System.out.println(y);
	}
	public static char getweek(int week){
		//char[] i= {"","一","二","三","四"};
		char[] i ={' ','一','二'};
			//return char[week];
			return i[week];
	}
}

代码12 这个是找到第一个一样的值,感觉这个代码挺简单的,结果自己出了俩错,这个return语句的位置,要写在if内部,外面也需要加一个return语句 这个的意思是找不到就-1

class  Demo12_Array
{
	public static void main(String[] args) 
	{
		
		int[] x = {3,4,5,6,7};
		int y = 6;
		int z = getindex(x,y);
		System.out.println(z);
	}
	public static int getindex(int[] arr,int value){
		for(int i = 0; i<arr.length;i++){
			if(arr[i]==value){
				//break;
				return i;
			}
		}
		//return i;
		return -1;
	}
}

猜你喜欢

转载自blog.csdn.net/weixin_40079205/article/details/82924098