java基础(四)数组

数组是存储多个变量的容器(集合)

本章内容是一维数组的建立和小demo

/*
 * 数组
 *	概念:1.数组是存储多个变量的容器(集合),且这些变量的数据类型一致 
 *		2.数组既可以存储基本数据类型,也可以存储引用数据类型
 *
 * */
public class ArrayDemo {
	public static void main(String[] args) {
//		demo01();
//		demo02();
//		demo03();
		demo04();
//		demo05();
	}
	

	//定义一个数组
	/*
	 * 使用数组前必须先初始化
	 * 初始化:给数组元素分配内存空间,并赋值
	 * 	动态初始化:只指定数组长度,由系统为数组指定初始值
	 * 	静态初始化:指定每个数组元素的初始值,由系统决定数组长度
	 * */
	private static void demo01() {
		int[] arr = new int[3];  //动态初始化
//		int[] arr2 =new int[1,2,3];
		
		/*
		 * 通过数组索引就可以得到数组的每个值,索引就是编号,从0开始,最大为长度-1
		 * */
		System.out.println(arr);   //输出:[I@15db9742   地址值
		System.out.println(arr[0]); //输出第一个数
		//给数组元素赋值
		arr[2] = 3;
		arr[0] = 1;
		System.out.println(arr[2]);
		System.out.println(arr[0]);
	}
	
	/*
	 * 将第一个数组的地址值赋给第三个数组,通过第三个数组的名称	把元素重复赋值
	 * */
	private static void demo02() {
		int[] arr = new int[2];
		int[] arr2 = new int[2];
		int[] arr3 = arr;
		arr[0] = 1;
		arr[1] = 2;
		arr2[0] = 3;
		arr2[1] = 4;
		arr3[0] = 4;
		arr3[1] = 4;
		System.out.println(arr[1]);
	}
	
	//静态初始化
	private static void demo03() {
		int[] arr = {1,2,3};
	}	

	//数组索引越界:访问了不存在的索引
	private static void demo04() {
		int[] arr = {1,2,3};
		System.out.println(arr[3]);
	}
	
	//引用类型的常量:空常量:null
	//给了null,数组就不再指向堆内存,空指针
	private static void demo05() {
		int[] arr = null;
		System.out.println(arr[3]);   
	}
	
}

关于数组的一些demo

import java.util.Scanner;

public class ArrayTest {
	public static void main(String[] args) {
//		demo01();
//		demo02();
//		demo03();
//		demo04();
		
		int[] arr = {1,2,3};
		Scanner sc = new Scanner(System.in);
		int num = sc.nextInt();
		System.out.println(demo05(arr,num));
		
	}
	


	//数组遍历
	private static void demo01() {
		int[] arr = {1,2,3};
		for(int i=0; i<arr.length; i++){
			System.out.print(arr[i]+" ");
		}
	}
	
	//数组求最值
	private static void demo02() {
		int[] arr = {11,5,3,44};
		int max = arr[0];
		for(int i=1; i<arr.length; i++){
			if(arr[i] > max){
				max = arr[i];
			}
		}
		System.out.println(max);
	}
	
	//数组冒泡排序
	private static void demo03() {
		int[] arr = {11,5,3,15};
		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;
				}
			}                  
		}
		for(int num:arr){      
			System.out.print(num+" ");
		}
	}
	
	//数组元素逆序
	private static void demo04() {
		int[] arr = {1,2,3,4,5,6,7};
		for(int i=0; i<arr.length; i++){
			int num = arr.length;
			if(i >= num/2){
				break;
			}
			int temp = arr[i];
			arr[i] = arr[num-1-i];
			arr[num-1-i] = temp;
		}  
		for(int a:arr){
			System.out.println(a);
		}
	}
	
	//基本查找
	public static int demo05(int[] a,int value){
		int index = -1;  //定义一个索引
		for(int i=0; i<a.length; i++){
			if(a[i] == value){
				index = i;
			}
		}
		return index;  //返回
	}	
}

猜你喜欢

转载自blog.csdn.net/CrankyST/article/details/83655762