java学习day4 数组

52 阅读1分钟

携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第十三天,点击查看活动详情

数组

image.png

一维数组的初始化

image.png

image.png 数组一旦初始化完成 长度就确定了

数组的初始化默认值

image.png

数组的内存解析

简单的内存结构 image.png

一维数组的内存解析

image.png

二维数组的声明和初始化

image.png

image.png

遍历二维数组

int[][] array = new int[][]{{1,2,3},{2,3,4}};
		//遍历二维数组
		for(int i=0;i<array.length;i++){
			for(int j=0;j<array[i].length;j++){
				System.out.println(array[i][j]);   //1 2 3   2 3 4
			}
			System.out.println();  
		}

二维数组的赋值与调用

                int[][] array = new int[][]{{1,2,3},{2,3,4}};
		int[][] a2 = new int[2][4];
		System.out.println(array[0][1]); //2
		System.out.println(a2[0][1]); //0
		String[][] s= new String[3][];  //正确的写法
		s[0]=new String[3];  //给里层数组赋值
		System.out.println(s[0][1]); //null
		System.out.println(array[0].length); //3

二维数组的默认初始化值

image.png 注意:以引用类型数据为元素的数组的默认初始化值为null

二维数组的内存解析

image.png

综合复习

image.png

image.png

image.png

image.png

eclipse常用快捷键

image.png

image.png

数据结构与算法初识

image.png

数组工具类的使用

image.png

package com.atguigu.exec;

import java.util.Arrays;

public class ArraysUtils {
	public static void main(String[] args) {
		// boolean equals(int[] a,int[] b) 判断两数组是否相等
		int[] arr1 = new int[]{1,2,3,4};
		int[] arr2 = new int[]{1,3,4,2};
		Boolean isEquals=Arrays.equals(arr1, arr2);
		System.out.println(isEquals);  //false
		
		
		//String toString(int[] a)  输出数组信息
		
		 
		System.out.println(Arrays.toString(arr1));  //[1, 2, 3, 4]

		
		//void fill(int[] a,int val)  将指定值填充到数组中;
		Arrays.fill(arr1, 10);
		System.out.println(Arrays.toString(arr1));  //[10, 10, 10, 10]
		
		//void sort(int[] a) 对数组进行排序
		Arrays.sort(arr2);
		System.out.println(Arrays.toString(arr2)); //[1, 2, 3, 4]
		
		//int binarySearch(int[] a,int key)   二分法检索
		int[] arr = new int[]{12,34,56,78,90,123,1234,12345};
		int index=Arrays.binarySearch(arr, 123);
		if(index>0){
			System.out.println(index);
		}else{
			System.out.println("没找到");
		}
		
	}

}

数组中常见的异常

image.png

image.png

数组复习题

image.png

image.png

package com.atguigu.java;

import java.util.Arrays;

public class Reviews {
	public static void main(String[] args){
		int[] arr = new int[]{22,3,4,-99,4,0,-2};
		//冒泡排序
		for(int i=0;i<arr.length-1;i++){
			for(int j=0;j<arr.length-1-i;j++){
				if(arr[j]>arr[j+1]){
					int temp = arr[j];
					arr[j]=arr[j+1];
					arr[j+1]=temp;
				}
				
			}
			
		}
		System.out.print(Arrays.toString(arr)+"\t");  //[-99, -2, 0, 3, 4, 4, 22]
		
		//反转数组
		for(int i = 0,j=arr.length-1;i<j;i++,j--){
			int temp = arr[j];
			arr[j]=arr[i];
			arr[i]=temp;
		}
	
		System.out.print(Arrays.toString(arr)+"\t");   //[22, 4, 4, 3, 0, -2, -99]
		
		//复制数组
		int[] arr1=new int[arr.length];
		for(int i=0;i<arr1.length;i++){
			arr1[i]=arr[i];
		}
		System.out.print(Arrays.toString(arr1)+"\t");  //[22, 4, 4, 3, 0, -2, -99]
		
		//线性查找
		
		int destiny = 22;
		destiny = 33;
		Boolean isFlag = true;
		for(int i=0;i<arr.length;i++){
			if(arr[i]==destiny){
				System.out.println("找到了"+i);
				isFlag=false;
				break;
			}
			
			
		}
		if(isFlag){
			System.out.println("没找到");
		}
		
	}

}