數組

數組

動態創建數組時:先聲明後賦值

基本數據類型:byte short int long 默認值是0

float doule 默認值是0.0

char是空格

boolean 是false

引用數據類型:默認初始化值爲null 比如String

一維數組的內存結構

棧stack:存放局部變量,對象的引用

堆heap:new出來的東西

	int [] scores = new int[4];

	第一句的意思:在棧中存scores:0x999 地址
	在堆中開闢了四個空間 默認值是0
    scores[0] = 98;
    scores[3] = 28;
	以上的意思:98和28覆蓋了堆中的響應位置的值

在這裏插入圖片描述

二維數組內存分析

	 int[] a1,a2;
	        a1 = new int[]{1,2,3,4,5};
	        for (int i = 0; i <a1.length ; i++) {
	            System.out.print(a1[i]);
	        }
	        a2 = a1;
	        for (int i = 0; i <a2.length ; i++) {
	            a2[i]=i;
	        }
	        System.out.println();
	        for (int i = 0; i <a1.length ; i++) {
	            System.out.print(a1[i]);
	        }

將a2=a1 修改a2的值,a1也會發生變化,基於內存分析,在棧中存了變量a1,和,a2指向的地址是同一個堆中的地址,修改a2導致堆中地址中值發生變化,故a1也會發生變化

在這裏插入圖片描述


數組算法實現楊輝三角:


	import java.util.Scanner;
	
	/**
	 * 楊輝三角
	 * 1.第一行有1個元素,第n行有n個元素
	 * 2.每一行的第一個元素和最後一個元素都是1
	 * 3.第三行開始,對於第一個元素和最後一個元素
	 * yanghui[i][j]= yanghui[i-1][j-1]+[i-1][j]
	 */
	public class Test {
	    public static void main (String[] args){
	        //實現數組的反轉
	        int[] a1 = new int[5];
	        for (int i = 0; i <a1.length ; i++) {
	            a1[i] = i;
	        }
	        //第一種方式
	        for (int i = 0; i <a1.length/2 ; i++) {
	            int temp = a1[i];
	            a1[i] = a1[a1.length-i-1];
	            a1[a1.length-i-1]=temp;
	        }
	        //第二種方式
	        for (int x = 0,y = a1.length-1; x < y; x++,y--) {
	            int temp = a1[x];
	            a1[x] = a1[y];
	            a1[y] = temp;
	        }
	        //打印數組
	        for (int i = 0; i <a1.length ; i++) {
	            System.out.println(a1[i]);
	        }
	    }
    }



基本數組的反轉

定義一個數組,隨機賦值

 //第一種方式
        for (int i = 0; i <a1.length/2 ; i++) {
            int temp = a1[i];
            a1[i] = a1[a1.length-i-1];
            a1[a1.length-i-1]=temp;
        }
        //第二種方式
        for (int x = 0,y = a1.length-1; x < y; x++,y--) {
            int temp = a1[x];
            a1[x] = a1[y];
            a1[y] = temp;
        }
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章