數組
1.什麼是數組?
答:數組是最基本的一種數據結構,相同數據類型的元素組成的集合。 程序 = 算法 + 數據結構
(1) 數據結構:把數據按照特定的某種結構來保存,設計合理的數據結構是解決問題的前提,設計良好的數據結構導致良好的算法。
(2)算法:解決問題的步驟 | 流程,先弄數據結構再弄算法。
2.數據中元素按照線性順序排列,線性順序指除第一個元素外,每一個元素都有唯一的前驅元素;除最後一個元素外每一個都有唯一的後繼元素。
(1)數組的定義與初始化:A int [] arr = new int[4]; //0,0,0,0
B int [] arr = {1,3,5,7}; //1,3,5,7
C int [] arr = new int[]{1,3,5,7}; //1,3,5,7
D arr = new arr[]{1,3,5,7}; //1,3,5,7
(2)數組的訪問: A 通過.length獲取數組的長度
int [] arr = new int [4];
System.out.println(arr.length);
B 通過引用下標來訪問數組的元素,下標從0開始最大到.length-1
int [] arr = new int[4];
arr[0] = 100; //給數組arr中第一個元素賦值爲100
arr[4] = 100; //異常,數組下標越界
C 數組的遍歷
int []arr = new int[4];
for(int i=0;i<arr.length;i++){
arr[i]=(int)(Math.Random()*100);
}
for(int j=0;j<arr.length;j++){
System.out.println(arr[j]);
}
注意:數組下標越界的錯誤
(3)基本類型的數組創建後其元素的初始值爲:byte,short,char,int,long爲0,(其中char的爲字節碼),float和double爲0.0,boolean爲false.
3.數組的複製
(1)使用System.arrarcopy()訪問可以實現數組的複製。
public static void arraycopy(Object src,int srcPos,Object dest,int destPos,int length).
src---源數組 srcPos---源數組中的起始位置 dest---目標數組
destPos---目標數組的起始位置 length----要複製數組元素的個數
(2)使用java.util.Arrays類的copyof方法進行復制
類型 [ ] newArray = Array.copyof(類型[ ].original,int newlength);
特點:生成的新數組是原數組的副本。
newlength小於原數組,則進行截取;newlength大於原數組,則用0或者null進行填充。
例子:
(1) int [ ] a = new int [ ]{1,2,3,4,5,6};
int [ ] b = new int[10];
複製:System.arrayCopy(1,0,b,0,5);
(2)int [ ] a = {1,2,3,4,5};
複製:int [ ] b = Arrays.copyOf(0,5);
//擴容(創建一個新的數組a,數據不變,長度爲原始長度加一)
a = Arrays.copyOf(a,a.lenght+1);
//縮容(創建一個新的數組a,數據不變,長度爲原始長度減一)
a = Arrays.copyOf(a,a.kength-1);
4.數組的排序
(1)一般情況下,通過排序過程中數組元素的交換次數來衡量排序算法的優缺,
(2)常用的排序算法爲:插入排序,冒泡排序,快速排序等。
(3)數據不一樣,使用不同的排序算法效率不同。
A JDK提供的Arrays.sort()方法封裝了數組的排序算法,默認爲升序。 例如:Array.sort(arr); //arr代表書組名
B 冒泡原理:n個數只需n-1次,每次都和他的下一個元素比,每次都是從第一個開始,冒出來的數就不帶他玩了,(外循環控制輪數,內循環控制每次比的次數)
5.質數(素數):只能執行補1和它本身整除的數。
6.並非一次執行就能的大結果的用開關操作(指的是boolean)。 平方根函數 int a = Math.sqrt(number);
7.方法:
A 封裝一段特定的邏輯功能
B 儘可能的獨立,一個方法只幹一件事
C 代碼的複用,便於代碼的維護
D 方法可以在程序中反覆被調用
(1)定義方法的五個要素:修飾詞,返回值類型,方法名,參數列表,方法體
(2)方法的參數是指:在調用時傳遞給方法,需要方法處理的數據,方法有參數也可以沒有參數,有參可以使方法處理更加靈活,在方法定義時,需要聲明該方法所需要的參數變量,在方法調用時,會將實際的參數值傳遞給方法的參數變量,必須保證傳遞參數的類型和額數符合方法的聲明。
(3)方法在聲明時必須指定返回值的類型:
A 若方法不需要返回數據,將返回值類型聲明爲void
B 若方法需要數據,將返回值類型聲明爲特定數據類型
(4)有返回值時:return即可以是個具體數,也可以是個表達式
(5)return作用:結束方法且將數據返回給調方,只有return;只是表示結束方法(可在無返回值得方法中調用)
(6)調用方法時的參數傳遞
public static int max(int a,int b){
}
int a = 5;
int b= 6;
int myMax = max(a,b);
A 爲main方法中的變量a,b,myMax分配空間並賦值
B 調用方法max,爲max方法的參數變量a,b分配空間
C 將調用值傳遞到參數變量中
D max方法運行完返回,參數空間釋放
E main方法中的myMax變量得到返回值
希望得到大神的補充,謝謝大家