Java基礎知識--第五篇
一
二維陣列:一維陣列的陣列。
動態初始化方式一(指定有多少個長度相同的一維陣列):資料型別[][] 變數名 = new 資料型別[m][n];
m表示這個二維陣列有多少個一維陣列
n表示每一個一維陣列的元素個數
資料型別[][] 變數名 = new 資料型別[m][];
注意:
m這個資料必須給出,後面的資料可以不給
需求:定義一個有3個一維陣列的二維陣列
1.給這個二維陣列的每一個一維陣列的元素賦值
僅可用此種方式:
arr[0][0] = 1;
arr[0][1] = 2;
不能用此種方式:
/*
arr[0] = {1,2};
arr[1] = {5,6,7};
arr[2] = {4};
*/
二維陣列的靜態初始化:
靜態初始化:
資料型別[][] 變數名 = new 資料型別[][]{{元素…},{元素…},{元素…}};
簡化格式:
資料型別[][] 變數名 = {{元素…},{元素…},{元素…}};
二維陣列的遍歷:一般用兩個for迴圈就可以了
看程式寫結果
class ArgsDemo {
public static void main(String[] args){
int a = 10;
int b = 20;
System.out.println("a:"+a+",b:"+b); //a:10,b:20
change(a,b);
System.out.println("a:"+a+",b:"+b);//a:10,b:20 a:20,b:40 a:10,b:20
int[] arr = {1,2,3,4,5};
System.out.println(arr[1]); //4
}
public static void change(int a,int b) {
System.out.println("a:"+a+",b:"+b);
a = b;
b = a + b;
System.out.println("a:"+a+",b:"+b);
}
public static void change(int[] arr) {
for(int x=0; x<arr.length; x++) {
//如果陣列的元素值是偶數,就變為以前的2倍。
if(arr[x]%2==0) {
arr[x]*=2;
}
}
}
}
結論:
如果形式引數是基本型別:
形式引數的改變,不影響實際引數。
如果形式引數是引用型別:
形式引數的該變,直接影響實際引數。
三、.陣列的高階操作(氣泡排序,選擇排序,陣列工具類,練習)
public class ArraysDemo {
//sort() 對陣列中的元素進行排序
int[] arr = {2,4,1,8,7};
//呼叫方法對陣列進行排序
Arrays.sort(arr);
//列印陣列中的元素
//printArr(arr);
char[] chs = {'c','d','a','e'};
Arrays.sort(chs);
//printArr(chs);
//toString()方法
String s1 = Arrays.toString(arr);
System.out.println(s1);
String s2 = Arrays.toString(chs);
System.out.println(s2);
}
private static void printArr(int[] arr) {
for (int i = 0; i < arr.length; i++) {
System.out.println(arr[i]+"\t");
}
}
private static void printArr(char[] arr) {
for (int i = 0; i < arr.length; i++) {
System.out.println(arr[i]+"\t");
}
}
}
相鄰的兩個元素進行比較,小的放前面,大的放後面
public class maopaoSort {
public static void main(String[] args) {
int[] a={5,9,3,6,1,0};
for (int i = 0; i < a.length-1; i++) {
for (int j = 0; j < a.length-1-i; j++) {
if(a[j]>a[j+1]){
int temp=a[j];
a[j]=a[j+1];
a[j+1]=temp;
}
}
for (int k = 0; k < a.length; k++) {
System.out.print(a[k]+" ");
}
//排一行輸出一行
System.out.println();
}
//一次性排序完輸出
for (int i = 0; i < a.length; i++) {
System.out.print(a[i]+" ");
}
}
}
2.1 選擇排序概念:
* 選擇排序:
* 從0索引開始,依次和後面的每一個元素進行比較
* 第一次比較完畢,最小值出現在了最小索引處
* 第二次比較完畢,次小值出現在了次小索引處
* ...
* 完畢後,就排序了。
public class SelectSort {
public static void main(String[] args) {
int[] a={0,23,15,9,26,7,2};
for (int i = 0; i < a.length; i++) {
System.out.print(a[i]+" ");
}
System.out.println();
System.out.println("*******************************");
for (int i = 0; i < a.length; i++) {
for (int j = i+1; j < a.length; j++) {
if(a[i]>a[j]){
int temp=a[i];
a[i]=a[j];
a[j]=temp;
}
}
for (int k = 0; k < a.length; k++) {
System.out.print(a[k]+" ");
}
System.out.println();
}
System.out.println();
for (int i = 0; i < a.length; i++) {
System.out.print(a[i]+"\t");
}
}
}
三:Arrays陣列工具類
3.1 針對陣列進行操作的工具類。提供了排序,轉換等功能。
3.2
* 成員方法:
* public static String toString(int[] a):把陣列轉成字串
* public static void sort(int[] a):對陣列進行排序(有過載)