2.1趣說什麼是陣列,以及資料的讀取、更新、插入、刪除等操作程式碼(2)
一 什麼是陣列?
大夥都知道在軍隊裡,每一個士兵都有自己的固定的位置、固定的編號,眾多士兵緊密的排列在一起,高效地執行著一個個命令。
有一個資料結構就像數軍隊一樣 整齊、有序,這個資料結構叫做陣列。
陣列是有限個相同型別資料的集合,陣列的每個變數稱為元素。陣列是最為簡單、最為常用的資料結構。
二、怎麼樣使用陣列呢?
資料結構的操作無非是增、 刪、改、 查 4種情況。
三 陣列元素的基本操作
1.讀取元素
假設一個名稱為array的陣列,我們讀取下標為3的元素,就寫作array[3];讀取下標為5的元素,就寫作array[5];
像這樣下標讀取的方式叫作隨機讀取。
簡單的程式碼示例:
int array[] =new int[]{3,2,4,2,5,6,8,9};
System.out.println(array[3]);
2 更新陣列元素
要把陣列中的某個元素,替換成新值。操作也比較簡單。
簡單的程式碼示例。
int array[] =new int[]{3,2,4,2,5,6,8,9};
array[3] =10;
System.out.println(array[3]);
3.1插入元素
插入陣列元素 分為3中情況。
尾部插入
中間插入
超範圍插入
尾部插入最簡單,直接把插入的元素放在陣列尾部空閒的位置即可,等同於更新元素的操作。
中間插入稍微複雜一些,即把插入位置以及後面的元素一一向後以後,在把插入的元素放在對應陣列響應的位置上。
private int array[];
private int size;
public MyArray(int capacity)
{
this.array = new int[capacity];
size = 0;
}
/陣列插入元素/
/*
*@param element 插入的元素
*@param index 插入的位置
*
*/
public void insert (int element ,int index )throws Exception
{
if(index < 0 || index >size)
{
throw new IndexOutOfBoundsException("
超出陣列實際元素");
}
for(int i = size; i >=index ; i--)
{
array[i+1] = array[i];
}
//騰出的位置放入新元素
array[index ] = element ;
}
/*
*
*輸出陣列
*/
public void output()
{
for (int i=0; i<size;i++)
{
System.out.println(array[i]);
}
}
public static void main(String[] args)
{
MyArray myArray = new MyArray(10);
myArray .insert(3,0);
myArray .insert(7,1);
myArray .insert(9,2);
myArray .insert(7,3);
myArray .output();
}
3.2 超範圍插入
假如一個陣列的大小為8,元素已經滿啦,現還要插入一個元素就要擴容啦。
private int array[];
private int size;
public MyArray(int capacity)
{
this.array = new int[capacity];
size = 0;
}
/陣列插入元素/
/*
*@param element 插入的元素
*@param index 插入的位置
*
*/
public void insert (int element ,int index )throws Exception
{
if(index < 0 || index >size)
{
throw new IndexOutOfBoundsException("
超出陣列實際元素");
}
if(size >=array.legth )
{
resize();
}
for(int i = size; i >=index ; i--)
{
array[i+1] = array[i];
}
//騰出的位置放入新元素
array[index ] = element ;
size++;
}
/*
*
*陣列擴容
/
public void resize()
{
int arrayNew[] = new int[array.legth2]
System.arraycopy(array,0,arrayNew,0,array.legth);
array =arrayNew;
}
/*
*
*輸出陣列
*/
public void output()
{
for (int i=0; i<size;i++)
{
System.out.println(array[i]);
}
}
public static void main(String[] args)
{
MyArray myArray = new MyArray(3);
myArray .insert(3,0);
myArray .insert(7,1);
myArray .insert(9,2);
myArray .insert(7,3);
myArray .output();
}
4 刪除元素
陣列的刪除操作與插入操作正好相反,在刪除的位置所有的元素都向前移動一位。
/陣列刪除元素/
/*
*@param index 刪除的位置
*
*/
public void delete (int index )throws Exception
{
if(index < 0 || index >size)
{
throw new IndexOutOfBoundsException("
超出陣列實際元素");
}
int delectElement = array[index ];
for(int i= index ; i < size-1;i++)
{
array[i] = array[i +1];
}
size --;
return delectElement ;
}
5 陣列的優勢和劣勢
陣列的優勢:優勢體現在高效地隨機訪問能力,有一種高效地查詢法,就是利用了陣列的這個優勢。
陣列的劣勢:劣勢體現在插入與刪除,插入與刪除元素將導致大量元素被騙移動,影響效率。
總的來說,陣列適合用在讀操作多,寫操作少的場合。
相關文章
- 2.1趣說什麼是陣列,以及資料的讀取、更新、插入、刪除等操作程式碼(1)陣列
- MongoDB 集合的插入、更新、刪除操作MongoDB
- MySQL(四) 資料表的插入、更新、刪除資料MySql
- JS模擬陣列操作(新增、刪除、插入、排序、反轉)JS陣列排序
- javascript刪除陣列元素的程式碼JavaScript陣列
- .NET 資料庫大資料 方案(插入、更新、刪除、查詢 、插入或更新)資料庫大資料
- GIS資料的查詢,插入,刪除,更新(ArcEngine)
- 使用 MERGE 插入、更新和刪除資料
- kettle 實時同步資料(插入/更新/刪除資料)
- 第15 16課 資料的插入更新和刪除
- Cookie新增、獲取以及刪除操作Cookie
- 在一條DML語句中插入/更新/刪除/獲取幾百萬行資料,你會特別注意什麼?
- JavaScript /JS 如何實現陣列的建立,增加,刪除,遍歷等操作???JavaScriptJS陣列
- javascript刪除陣列重複元素程式碼JavaScript陣列
- oracle資料庫建立、刪除索引等操作Oracle資料庫索引
- mysql 資料插入和更新及刪除詳情FSSHMySql
- image是什麼資料夾可以刪除嗎
- javascript刪除指定索引的陣列程式碼例項JavaScript索引陣列
- 刪除陣列中的指定元素例項程式碼陣列
- javascript刪除陣列中的重複元素程式碼JavaScript陣列
- 如何對 ABAP 資料庫表透過 ABAP 程式碼進行更新和刪除操作試讀版資料庫
- mysql資料庫誤刪除操作說明MySql資料庫
- javascript刪除陣列指定值程式碼例項JavaScript陣列
- SQL的資料庫操作:新增、更新、刪除、查詢SQL資料庫
- hibernateHQl批量插入、刪除、更新
- SQL Cookbook—插入、更新與刪除SQL
- perflogs是什麼資料夾可以刪除嗎
- customemotions是什麼資料夾可以刪除嗎
- linux刪除資料夾下所有檔案命令是什麼 linux刪除資料夾下內所有內容怎麼操作Linux
- documents是什麼資料夾 documents資料夾可以刪除嗎
- drivers是什麼資料夾 drivers資料夾可以刪除嗎
- leveldb程式碼精讀 插入操作
- javascript刪除陣列重複元素程式碼例項JavaScript陣列
- js刪除陣列重複元素程式碼例項JS陣列
- javascript按照值刪除陣列元素程式碼例項JavaScript陣列
- 查詢陣列裡資料刪除和增加的方法陣列
- 為什麼陣列查詢比連結串列要快?而插入刪除比連結串列效率低陣列
- winsxs是什麼資料夾可以刪除嗎