Java学习之路 第四章 数组

第四章 数组

<一>数组的定义
是具有相同数据类型的一组数据的集合。
<二>数组的创建
一维数组
1、 数据类型 [] 数组名 = new 数据类型[大小];
(1) int [] ages = new int [10]; //两种一样
(2) int [] ages; //为分配空间
ages = new int[10]; //分配空间
2、数据类型 [] 数组名=new 数据类型[]{值1,值2,…值n};
int [] arrays= new int [5]{1,2,5,8,6};
3、数据类型 [] 数组名={值1,值2,…值n};
int [] arrays = {1,2,5,8,6};
多维数组(二维数组)
(1)int [][]array=new int[3][6];
int [][]array={{1,2},{3,4},{5,6}};
(2)使用循环遍历多维数组:几维数组就需要几层循环的嵌套

<三>数组的常见错误

  1. ArrayIndexOutOfBoundsException:数组越界异常
  2. 数组的定义方式的3种类型。
    <四>数组的基本操作
  3. 数组的遍历与录入
 import java.util.Scanner;
 public class Array1{
	public static void main(String []args){
		Scanner sc = new Scanner(System.in);  //键盘录入
		int [] a=new int[5];                 //定义数组
		System.out.println("输入数组元素");
		for(int j=0;j<a.length;j++){       // 键盘录入数组元素
			a[j] = sc.nextInt();
		}
		for(int i=0;i<a.length;i++){       //遍历数组元素
			System.out.print(a[i]);	
	  }
  }
 }

程序运行结果:
在这里插入图片描述

  1. 找数算法:定义一个数组,输入一个值,在数组中找是否存在该元素。
import java.util.Scanner;
class Search{
	public static void main(String []args){
		int [] array = {1,5,8,9,70,56,87};
		Scanner sc = new Scanner(System.in);
		System.out.println("请输入一个数");
		int a = sc.nextInt();
		boolean flag = false;
		for(int i=0;i<array.length;i++){
			if(array[i]==a){
				flag=true;
				break;
			}
		}
		if(flag){
			System.out.println("存在!");
		}else
			System.out.println("不存在!");
	}
}

程序运行结果:
在这里插入图片描述
3. 擂台算法(求最值)

import java.util.Scanner;
class Pk{
	public static void main(String []args){
		Scanner sc = new Scanner(System.in);
		int []array = new int [5];
		System.out.println("请输入5个数");
		for(int i=0;i<array.length;i++){
			array[i] = sc.nextInt();
		}
		int max=array[0],min=array[0];
		for(int j=1;j<array.length;j++){
			if(array[j]>max){
				max=array[j];
			}
			if(array[j]<min){
				min=array[j];
			}
		}
		System.out.print("最大值为: "+max+"  最小值为:"+min+"");
	}
}

程序运行结果:
在这里插入图片描述
4.排序算法
冒泡排序(降序/升序):

class Sort{
	public static void main(String []args){
		int []array ={5,98,56,1,55};
		int temp=0;
		for(int i=0;i<array.length;i++){
			for(int j=0;j<array.length-i-1;j++){
				 //这是升序“》”   降序“《”
				if(array[j]>array[j+1]){           
					temp=array[j];
					array[j]=array[j+1];
					array[j+1]=temp;
				}
			}
		}
		System.out.println(Arrays.toString(array));
	}
}

程序运行结果:
在这里插入图片描述
插入排序:给一个有序的数组中插入一个数,使其仍然保持有序。
a,定义一个有预留位置的数组
b,找插入位置
c,移位操作

import java.util.*;
class Insert {
	public static void main(String[] args) {
		int[]array=new int[5];
		Scanner sc = new Scanner(System.in);
		System.out.println("请输入4个从小到大的数:");
		 //输入值
		for(int i=0;i<array.length-1;i++){
			array[i] = sc.nextInt();          
		}
		//遍历值
		System.out.print("插入前:");
		for(int j=0;j<array.length-1;j++){
			System.out.print(array[j]+" ");
		}
		System.out.println("请输入要插入的数:");
		int num=sc.nextInt();
		int i;
		//找位置
		for(i=0;i<4;i++){
			if(num<array[i]){
				break;
			}
		}
		//移位操作
		for(int j=4;j>i;j--){
			array[j]=array[j-1];
		}
		//插入
		array[i]=num;
		System.out.println("插入后:"+Arrays.toString(array));
		System.out.println("请输入你要删除的位置:");
		int index=sc.nextInt();
		delete(index,array);    //调用delete方法
		//遍历删除后的值
		System.out.print("删除之后数组为:");
		for(int j=0;j<array.length-1;j++){
			System.out.print(array[j]+" ");
		}
	}
	// 删除方法
	public static int[] delete(int index,int array[]){
		for(int i = index;i<array.length;i++){
			if(i!=array.length-1){
				array[i]=array[i+1];
			}else
				array[i]=array[i];
		}
		return array;
	}
}

程序运行结果:
在这里插入图片描述
<五>数组的工具类:Arrays
(1)快速查看数组的内容:Arrays.toString(数组);
(2)排序:Arrays.sort(数组); -------- 升序
备注
java中main方法的args数组的作用:接受用户的输入
java 类 值1 值2 值3 …值n
args大小是动态分配的:n

猜你喜欢

转载自blog.csdn.net/qq_39222113/article/details/83445525