1. 程式人生 > >java基礎(四)陣列

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); //輸出:[[email protected] 地址值 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;  //返回
	}	
}