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)陣列
- JS模擬陣列操作(新增、刪除、插入、排序、反轉)JS陣列排序
- .NET 資料庫大資料 方案(插入、更新、刪除、查詢 、插入或更新)資料庫大資料
- kettle 實時同步資料(插入/更新/刪除資料)
- Cookie新增、獲取以及刪除操作Cookie
- JavaScript /JS 如何實現陣列的建立,增加,刪除,遍歷等操作???JavaScriptJS陣列
- 在一條DML語句中插入/更新/刪除/獲取幾百萬行資料,你會特別注意什麼?
- mysql 資料插入和更新及刪除詳情FSSHMySql
- oracle資料庫建立、刪除索引等操作Oracle資料庫索引
- 如何對 ABAP 資料庫表透過 ABAP 程式碼進行更新和刪除操作試讀版資料庫
- mysql資料庫誤刪除操作說明MySql資料庫
- SQL的資料庫操作:新增、更新、刪除、查詢SQL資料庫
- linux刪除資料夾下所有檔案命令是什麼 linux刪除資料夾下內所有內容怎麼操作Linux
- perflogs是什麼資料夾可以刪除嗎
- winsxs是什麼資料夾可以刪除嗎
- image是什麼資料夾可以刪除嗎
- customemotions是什麼資料夾可以刪除嗎
- 查詢陣列裡資料刪除和增加的方法陣列
- linux刪除資料夾命令是什麼 linux刪除一個目錄的命令Linux
- 陣列的方法-新增刪除陣列
- 為什麼陣列查詢比連結串列要快?而插入刪除比連結串列效率低陣列
- Yii 1.0資料庫操作 查詢、增加、更新、刪除資料庫
- MySQL 批量更新、刪除資料shell指令碼MySql指令碼
- PostgreSQL 原始碼解讀(2)- 插入資料#2(RelationPutHeapTuple)SQL原始碼APT
- documents是什麼資料夾 documents資料夾可以刪除嗎
- drivers是什麼資料夾 drivers資料夾可以刪除嗎
- CnosDB的資料更新和刪除
- appdata是什麼資料夾可以刪除win10APPWin10
- JavaScript刪除陣列元素JavaScript陣列
- 陣列刪除指定項陣列
- windows10更新助手怎麼刪除_windows10更新助手刪除操作方法Windows
- Laravel 批量插入(如果資料存在刪除原資料)Laravel
- kingsoft是什麼軟體 kingsoft資料夾可以刪除嗎
- eazyexcel 讀取excel資料插入資料庫Excel資料庫
- Unfolder使用教程:如何插入,刪除和更新物件物件
- 【typeorm】typeorm官方文件querybuilder插入更新刪除部分ORMUI
- JavaScript 刪除陣列指定元素JavaScript陣列
- JavaScript刪除array陣列元素JavaScript陣列