陣列以及對其常用的操作

2021-08-31 14:34:39 字數 2621 閱讀 8544

陣列:

本身就是乙個容器,用來儲存資料。

特點:是固定長度的。

好處:給元素進行編號,從零開始。同時也可以通過length屬性獲取陣列長度。

什麼時候使用陣列呢?

當資料較多時,通常為了方便操作這些資料都需要進行臨時儲存。

習慣:通常運算元組都需要進行遍歷。獲取陣列中的元素需要乙個指標。

通過對指標的值的改變就可以對陣列中的資料進行操作。

常出現的問題:

1,陣列角標越界異常。arrayindexoutofbound***ception

什麼時候會發生呢?當使用到了陣列中不存在的角標時就會發生該異常。

2,空指標異常。nullpointerexception

當引用型變數沒有任何指向時,還在使用該引用變數操作實體內容,會發生該異常。

int arr = new int[3];

該句**在記憶體中的分配情況。

堆記憶體:開闢乙個空間,建立乙個陣列實體,並對陣列中的元素進行了預設初始化。

棧記憶體特點:存放區域性變數,當該變數使用完畢(生命週期結束),自動被釋放。

陣列的常見操作:

1,遍歷。

public static void printarr(int arr)

for(int x=0; xif(x!=arr.length-1)

system.out.print(arr[x]+",");

else

system.out.println(arr[x]);

2,獲取最值。int arr = new int[3];

arr = null;

system.out.println(arr.length);

getmax(null);

public static int getmax(int arr)

if(arr==null)

throw new runtimeexception();

int max = arr[0];

for(int x=1; xif(arr[x]>max)

max = arr[x];

return max;

public static int getmin(int arr)

int min = 0;

for(int x=1; xif(arr[x]min = x;

return arr[min];

3,排序。

選擇排序

特點:選擇乙個位置,通過該位置上變化的元素和其他元素進行比較,走完一圈,該位置出現最值。

內迴圈結束一次,在0角標位出現最值。

**體現形式:

public static void selectsort(int arr)

for(int x=0; xfor(int y=x+1; yif(arr[x]>arr[y])

swap(arr,x,y);

public static void bubblesort(int arr)

for(int x=0; x=0; x--)

for(int y=0; yif(arr[y]>arr[y+1])

swap(arr,y,y+1);

y-x : 通過不斷迴圈,減少每一次參與比較元素的個數。

-1 :防止y+1的角標越界。

private static void swap(int arr,int x,int y)

int temp = arr[x];

arr[x] = arr[y];

arr[y] = temp;

4,查詢。

public static int getindex(int arr,int key)

for(int x=0; xif(arr[x]==key)

return x;

return -1;//為什麼返回-1呢?因為陣列中沒有-1這個角標,所以可以通過-1來表示元素不存在的情況。

折半查詢,二分查詢。

這種方式有乙個必要的前提:被查詢的陣列一定要是有序的。

public static int halfsearch(int arr,int key)

int max,min,mid;

max = arr.length-1;

min = 0;

mid = (max+min)/2;

while(arr[mid]!=key)

if(key>arr[mid])

min = mid + 1;

else if(keymax = mid - 1;

if(min>max)

return -1;

mid = (max+min)/2;

return mid;

public static int halfsearch(int arr,int key)

int max,min,mid;

max = arr.length-1;

min = 0;

while(min<=max)

mid = (max+min)/2;

if(key>arr[mid])

min = mid +1 ;

else if(keymax = mid - 1;

else

return mid;

return -1;

物件導向的特性以及對其理解

1.封裝 所謂封裝,就是將客觀事物封裝成抽象的方法,並且類可以吧資料和放發讓可信的類或者物件進行操作,對不可信的類或物件進行影藏。類是封裝資料和操作這些資料 的邏輯實體。在乙個類的內部,某些屬性和方法是私有的,不能被外界訪問。通過這中方式,物件內部資料進行了不同級別的訪問控制,就避免了程式中的無關部...

js值字符集編碼以及對其應用的理解

最近一直在忙專案的事,就沒有更新了。正好碰到編碼的問題,看的差不多就寫寫了。首先得搞懂字符集和編碼的區別 字符集定義的是碼點,即相應的值對應的字元 而編碼則是怎麼解析這些二進位制位數,具體的可以檢視 現在主要的字符集用的都是unicode和ascii字符集值,我今天也就主要講一下這兩種字符集。先說一...

父頁面與子頁面之間的操作以及對iframe的操作

在開發過程中,有時會遇到父頁面的內容需要在子頁面做更改,父頁面也同時能夠改變。那如何做到父頁面與子頁面的互動?子頁面呼叫父頁面的方法 window.parent.方法 或window.opener.方法 子頁面呼叫父頁面的變數 window.opener.變數名 或window.opener.變數 ...