數組
- 一維數組的聲明、分配空間、初始化、使用
public class Arrayuse {
public static void main(String[] args) {
//聲明
int arr[]; //聲明方式一:類型 數組名字[]
String[] arr1;//聲明方式二:類型[] 數組名字
//爲數組分配空間
arr = new int[10]; //數組名 = new 數組類型[數組元素的個數];
//聲名的同時爲數組分配空間
int arr2[] = new int[10]; //類型 名字[] = new 類型[數組元素的個數]
//初始化
int arr3[] = new int[] {1,2,3,4,5}; //初始化方式一
int arr4[] = {1,2,3,4,5}; //初始化方式二
//使用
for(int x:arr3) { //foreach方式
System.out.println(x);
}
for(int i=0;i<arr3.length;i++) { //for循環方式
System.out.println(arr3[i]);
}
}
}
- 二維數組初始化及使用
創建和初始化與一維數組一樣,只不過多了一箇中括號,下面演示分配空間的兩種不同方法
import java.util.Arrays;
public class Twoarray {
public static void main(String[] args) {
int arr[][] = new int[2][4]; //方式一
int a[][] = new int[2][]; //方式二
a[0] = new int[2];
a[1] = new int[3];
Arrays.fill(arr[0], 4); //數組填充
Arrays.fill(arr[1], 6);
Arrays.fill(a[0], 1);
Arrays.fill(a[1], 2);
for(int x[]:arr) { //遍歷arr
for(int y:x) {
System.out.print(y);
}
System.out.println();
}
for(int x[]:a) { //遍歷a
for(int y:x) {
System.out.print(y);
}
System.out.println();
}
}
}
- 數組常用方法:
- 填充,Arrays.fill(int[] a,int value)和Arrays.fill(int[] a,int fromIndex,int toIndex,int value)
- 以字典序排序,Array.sort(object),裏面寫要排序的數組名
- 複製數組,copyOf()方法與copyOfRange()方法
- 數組查詢,binarySearch(),返回搜索元素的索引值
用法代碼如下:
import java.util.*;
public class Arraysmethod {
public static void main(String[] args) {
//複製
int arr[] = new int[]{1,3,5,7,2,4,6};
int arrCopy[] = Arrays.copyOf(arr, 5); //第一個參數爲目標數組,第二個參數爲長度。長度大於數組長度時,自動補0
int arrCopy2[] = Arrays.copyOf(arr, 10);
int arrCopy3[] = Arrays.copyOfRange(arr, 1, 3); // 左閉右開,第二個參數是開始下標,第三個參數是結束下標
for(int x:arrCopy) {
System.out.print(x); //1 3 5 7 2
}
System.out.println();
for(int x:arrCopy2) {
System.out.print(x); //1 3 5 7 2 4 6 0 0 0
}
System.out.println();
for(int x:arrCopy3) {
System.out.print(x); //3 5
}
//查詢
System.out.println();
Arrays.sort(arr);
int index = Arrays.binarySearch(arr, 4); //第一個參數爲目標數組,第二個參數是你要查找的值,返回下標,調用此方法前必須sort
System.out.println(index); //3
int index1 = Arrays.binarySearch(arr, 0,3,4); //中間兩值的位置是起始搜索位置,第一個,第四個是上面的第一第二個。
System.out.println(index1); // -4
}
}