標籤:imp 成功 操作 class 程式 常用 元素 個數 value
一維數組本質上是一組相同類型的線性集合,當在程式需要處理一組資料,或者傳遞資料時,可以應用這種類型的數組。
建立一維數組:數組作為對象允許使用new關鍵字進行分配記憶體。在使用數組之前,必須首先定義陣列變數所屬類型。
1:int arr[]; //聲明int型數組,數組中的每個元素都是int型。
String str[]; //聲明string型數組,數組中的每個元素都是String型。
聲明了數組只是給出了數組名字和元素的資料類型,要想真正使用數組,還要為它分配記憶體空間。在為數組分配記憶體時,必須指明數組的長度。
數組名字 =new 數組元素類型[數組元素的個數]; arr=new int[5];
數組是通過下標來區分數組中的不同元素,數組的下標是從0開始的。
2:聲明數組的同時為數組分配記憶體。
數組元素類型 數組名=new 數組元素類型[數組元素的個數];
int month=new int[2];
初始化一維數組:
int arr=new int[]{1,3,2,5,8};
int arr={1,3,2,5,8};
eg:
public class GetDay(){
public static void main(String[]args){
int day=new int[]{31,28,30,31};
for(int i=0;i<day.length,i++){
System.out.println("day[i]");
}
}
}
二維數組的建立及使用
如果一維數組中的各個元素仍然是一個數組,那麼它就是一個二維數組。二維數組常用於表示表中的資訊以列和行的形式組織,第一個下標代表元素所在行,第二個下標代表元素所在的列。
二維數組可以看作是特殊的一維數組,因此,二維數組的建立同樣有兩種方式。
1:先聲明,再用new運算子進行記憶體配置。
數組元素類型 數組名字[][];
數組元素類型 [][] 數組名字;
int arry[][];
同一維數組一樣,二維數組在聲明時也沒有分配記憶體空間,同樣要使用new關鍵字來分配記憶體,然後才可以訪問每個元素。
對於高維數組,有兩種為數組分配記憶體的方式:
(1)直接為每一維分配記憶體空間。
a=new int[2][4]
分別為每一維分配記憶體,
a=new int[2][];
a[0]=new int[2];;
a[1]=new int[3];
(2):聲明的同時為數組分配記憶體
第二種方式同第一種實現的相同功能。使用方式為二維碼數組分配記憶體時,首先指定最左邊維數的記憶體,然後單獨地給餘下的維數分配記憶體。
二維數組初始化:
type arryname[][]={value1,value2.....valuen};
int arryname[][]={{1,2},{45,10}};
使用二維數組:
public class Matrix{
public static void main(String[]args){
int a[][]=new int[3][4];
for(int i=0;i<a.length;i++){
System.out.println(a[i][j]);
}
}
}
對於整型二維數組,建立成功之後系統會賦給數組中每個元素初始值0.
數組的基本操作:
1:遍曆數組
遍曆二維數組使用雙層for迴圈。
public class Trap{
public static void main(String[]args){
int b[][]=new int[][]{{1},{2,3},{4,5,6}};
for(int k=0;k<b.length;k++){
for(int j=0;j<b[k].length;j++){
System.out.println(b[k][j]);
}
}
}
}
在遍曆數組時使用foreach語句可能會更簡單。
public class Tautog{
public static void main(String[]args){
int b[][]=new int[][]{{4,3},{1,2}};
System.out.println("數組中的元素是:");
for(int x[]:b){
for(int y[]:x){
if(x==b.length){
System.out.println(y);
}
else
System.out.println(e+"\");
}
}
}
}
填充替換數組元素
數組中的元素定義完成之後,可通過arry類中fill來對數組中的元素進行替換。該方法通過重載形式可完成任意類型的數組元素的替換。
fill(int a[],int value): a為要替換元素的數組,Value為要進行替換的資料。將指定的int值分給數組中的每一個元素。
import java.util.Arrays;
public class Swap{
public static void main(String[]args){
int arr[]=new int[5];
Array.fill(arr, 8);
for(int i=0;i<arr.length;i++){
System.out.println(arr[i]);
}
}
}
fill(int []a,int fromIndex,int toIndex,int value); 該方法將指定的int值分配給指定範圍中的每一個元素。如果fromIndex==toIndex,則填充範圍為空白。
import java.util.Arrays;
public class Displace{
public static void main(String[]args){
int arr[][]=new int[][]{45,12,2,10};
Array.fill(arr,1,2,8);
for(int i=0;i<arr.length;i++){
System.out.println(arr[i]);
}
}
}
對數組進行排序:
通過Arrays類靜態 sort()方法可以實現對數組的排序。sort()方法提供了多種重載形式,可以對任意類型的數組進行升序排序。
Array.sort(object)
import java.util.Arrays;
public class Taxis{
public static void main(String[]args){
int arr[]={23,42,12,8};
Arrays.sort(arr);
for(int i=0;i<arr.length;i++){
System.out.println(arr[i] );
}
}
}
上述執行個體是對整形數組進行排序。java中的string類型數組的排序演算法是根據字典編排順序排序的。因此數字排在字母前面,大寫字母排在小寫字母前面。
複製數組:
Arrays類的copyOf()方法與copyOfRange() 方法可以實現對數組的複製,copyOf()是複製數組至指定的長度,copyOfRange()方法則將數組指定長度複製到一個新的數組中。
copyOf(arr,int newlength);
arr:要進行複製的數組; newlength:指複製後的長度。如果新數組的長度大於數組arr的長度,則用0進行填充(根據複製數組的類型來決定填充的值,整型數組決定用0來填充的,char型數組則使用null來填充)。如果複製後的數組長度小於數組arr的長度,則會從數組arr的第一個元素開始截取滿足新數組長度為止。
eg:
import java.util.Arrays;
public class Cope{
public static void main(String[]args){
int arr[]=new int[]{23,42,12};
int newarr[]=Arrays.copyOf(arr,5);
for(int i=0;i<newarr.length;i++){
System.out.println(newarr[i]);
}
}
}
copyOfRange()方法: copyOfRange(arr,int fromIndex,int toIndex); arr:要進行複製的數組對象。fromIndex:指定開始複製數組的索引位置。fromIndex必須在0至整個數組長度之間。新數組包括索引fromIndex的元素。 toIndex:要複製範圍的最後索引位置。可大於數組arr的長度。新數組不包括索引是toIndex的元素。
eg:
import java.util.Arrays;
public class Repeat{
public static void main(String[]args){
int arr[]=new int[]{23,42,12,84,10};
int newarr[]=Array.copyOfRange(arr,0,3);
for(int i=0;i<newarr.length;i++){
System.out.println(newarr[i]);
}
}
}
}
JAVA---數組