寫代碼的四點: 1.明确需求。要做什麼? 2.分析思路。要怎麼做?(1,2,3……) 3.确定步驟。每一個思路要用到哪些語句、方法和對象。 4.代碼實作。用具體的語言代碼将思路實作出來。 學習新技術的四點: 1.該技術是什麼? 2.該技術有什麼特點?(使用需注意的方面) 3.該技術怎麼使用?(寫Demo) 4.該技術什麼時候用?(在Project中的使用場景 ) ----------------------早計劃,早準備,早完成。-------------------------
數組的概述:
數組是同一種類型資料的集合,是一個容器,用來存儲固定大小的同類元素。它可以自動給數組中的元素從0開始編号,友善操作。 數組的元素是通過索引通路的,數組索引從0開始,是以索引值從0到元素個數 -1; 數組可以作為函數的參數和函數的傳回值使用。 數組可以通過下标來引用。Java對數組元素要進行越界檢查以保證安全性。 數組通過length屬性來指明它的長度。 聲明數組變量: 格式1:元素類型【】 元素名;(推薦) int[] arrayInt ; 格式2:元素類型 元素名【】; int arrayInt[] ; 一維數組的初始化: 格式1:元素類型【】 元素名 = new 元素類型【元素個數或數組長度】; 動态初始化,可以在聲明以後進行初始化。 int [] arrayInt = new int [ 3 ] ; arrayInt[ 0 ] = 1 ; arrayInt[ 1 ] = 2 ; arrayInt[ 2 ] = 3 ; 格式2:元素類型【】 元素名 = {元素0,元素1,......}; 靜态初始化,在聲明數組的同時進行初始化。 int[] arrayInt = { 9 , 3 , 7} ; 二維數組的初始化: 格式1:元素類型【】【】 元素名 = { { 元素00,元素01 } , { 元素10,元素11,元素12},......}; int[][] arrayTwoInt = {{ 3 , 2} , { 11 , 22} , { 8 , 7 , 4}} ; 解釋:定義了名稱為arrayTwoInt的二維數組,二維數組中有3個一維數組, 前兩個一維數組中有2個元素,最後一個一維數組中有3個元素。 數組空間不是連續配置設定,是以不要求二維數組中的每一維的大小相同。 格式2:元素類型【】【】 元素名 = new 元素類型【一維數組個數】【一維數組的元素個數】; int[][] arrayTwoInt = new int[ 3][ 2] ; 解釋:定義了名稱為arrayTwoInt的二維數組,二維數組中有3個一維數組, 每一個一維數組中有2個元素。 格式3:元素類型【】【】 元素名 = new 元素類型【一維數組個數】【】; int[][] arrayTwoInt = new int[ 3][] ; arrayTwoInt[ 0] = new int[ 3] ; arrayTwoInt[ 1] = new int[ 2] ; arrayTwoInt[ 2] = new int[ 1] ; 解釋:定義了名稱為arrayTwoInt的二維數組,二維數組中有3個一維數組, 每個一維數組都是預設初始化值null,可以分别對三個一維數組進行初始化, arrayTwoInt[0] = new int[3]; arrayTwoInt[1] = new int[2]; arrayTwoInt[2] = new int[1]; 多元數組:依照二維數組,以此類推。
數組的周遊(兩種方式):
1.通過for循環周遊數組,以擷取數組中的每一個元素。 int[] arrayInt = { 9 , 3 , 7} ; for ( int i = 0 ; i < arrayInt. length ; i++) { LogUtil. e( "輸出數組中的每一個元素" , "第" + i + "個元素:" + arrayInt[i]) ; } 2.“增強”for循環,專門用來周遊數組。 int[] arrayInt = { 9 , 3 , 7} ; for ( int element : arrayInt) { LogUtil. e( "輸出數組中的每一個元素" , element + "") ; }
Arrays類:
java.util.Arrays類能友善地操作數組,它提供的所有方法都是靜态的。 包含以下功能: 1.數組指派:通過fill方法; int [] ints = new int [ 5 ] ; Arrays. fill (ints , 4 ) ; for ( int i = 0 ; i < ints. length ; i++) { LogUtil. e ( "填充數組:Arrays.fill(array, 4)" , ints[i] + "" ) ; } Arrays. fill (ints , 2 , 4 , 8 ) ;//數組,腳标起始點,腳标終止點(包含頭不包含尾),填充的值 for ( int i = 0 ; i < ints. length ; i++) { LogUtil. e ( "将數組的第2和第3個元素指派為8:Arrays.fill(array, 2, 4, 8)" , ints[i] + "" ) ; } 2.數組排序:通過sort方法(升序); int[] array = { 19 , 5 , 11 , 34 , 23 , 9 , 7} ; Arrays. sort(array , 2 , 7) ; //數組,腳标起始點,腳标終止點(包含頭不包含尾) for ( int i = 0 ; i < array. length ; i++) { LogUtil. e( "對數組的第2個到第6個元素進行升序排序:Arrays.sort(array,2,7)" , array[i] + "") ; } Arrays. sort(array) ; for ( int i = 0 ; i < array. length ; i++) { LogUtil. e( "對整個數組進行升序排序:Arrays.sort(array)" , array[i] + "") ; } 3.比較數組:通過equals方法比較數組中元素值是否相等; int[] array1 = { 19 , 5 , 11 , 34 , 23 , 9 , 7} ; int[] array2 = { 0 , 5 , 11 , 34 , 23 , 9 , 7} ; Arrays. equals(array1 , array2) ; LogUtil. e( "比較數組元素是否相等:Arrays.equals(array1, array2)" , Arrays. equals(array1 , array2) + "") ; int[] array3 = array2.clone() ; Arrays. equals(array2 , array3) ; LogUtil. e( "克隆後數組元素是否相等:Arrays.equals(array2, array3)" , Arrays. equals(array2 , array3) + "") ; 4.查找數組元素:通過binarySearch方法對排序好的數組進行二分查找法操作。 int[] array = { 19 , 5 , 11 , 34 , 23 , 9 , 7} ; //使用二分搜尋算法查找指定元素所在的腳标(必須是排序好的,否則結果不正确) Arrays. sort(array) ; Arrays. binarySearch(array , 7) ; LogUtil. e( "元素7在array中的位置:Arrays.binarySearch(array, 7)" , Arrays. binarySearch(array , 7) + "") ; Arrays. binarySearch(array , 100) ; //如果不存在就傳回負數-8(-(數組的長度 + 1)) LogUtil. e( "元素100在array中的位置:Arrays.binarySearch(array, 100)" , Arrays. binarySearch(array , 100) + "") ; 5.将多種類型的數組轉成String類型字元串: int[] array = { 19 , 5 , 11 , 34 , 23 , 9 , 7} ; boolean[] array1 = { true, false} ; String s = Arrays. toString(array1) ; LogUtil. e( "将多種類型的數組轉成String類型字元串" , s) ;
注意:
1.記憶體一旦配置設定不能改變,是以說靜态數組一旦被聲明,它的容量就固定了,不容改變。 是以在聲明數組時,一定要考慮數組的最大容量,防止容量不夠的現象。 2.如果想要在運作程式時改變容量,就需要用到數組清單(ArrayList,也稱為動态數組)或 向量(Vector)。
---------------------------------------------------------------------------------------------------------------------------
早計劃,早準備,早完成。 歡迎關注!交流!Star!
GitHub:https://github.com/wangyang0313
微信公衆号:一個靈活的胖子MrWang
簡書:https://www.jianshu.com/u/e5e733d79b96