集合框架中用arraylist和vector來實現順序表這個資料結構,他們的底層都是基於陣列來實現的線性表,這兩順序表的區別在於:
vector是乙個老版本的順序表 arraylist是新版本的順序表
vector是執行緒安全的(效率比執行緒不安全版本低).arraylist是執行緒安全的,不加鎖的
現在不太推薦使用vector.更建議使用juc中的元件,優化的更好,效能更高
順序表的特性就是知道我放了幾個元素 並且不能跳著放
接下來我們就借助陣列來自己實現乙個順序表:
public
class
myarraylist
// 列印順序表
public
void
display()
}// 在 pos 位置新增元素
//1.判斷當前順序表是不是滿的
//2.挪資料從順序表的最後乙個元素開始往後挪.一直挪到pos位置
//在usedsize-1的位置開始挪位置,一直到pos位置
public
void
add(
int pos,
int data)
if(pos<
0||pos>
this
.usedsize)
int i=
this
.usedsize-1;
while
(i>=pos)
this
.elem[pos]
=data;
this
.usedsize+=1;
}//判斷是不是滿的
public
boolean
isfull()
return
false;}
//判斷順序表是否為空
public
boolean
isempty()
return
false;}
// 判定是否包含某個元素
public
boolean
contains
(int tofind)
for(
int i =
0; i <
this
.usedsize; i++)}
return
false;}
// 查詢某個元素對應的位置
public
intsearch
(int tofind)
for(
int i =
0; i <
this
.usedsize; i++)}
return-1
;}// 獲取 pos 位置的元素
public
intgetpos
(int pos)
if(pos<
0||pos>
this
.usedsize)
return
this
.elem[pos];}
// 給 pos 位置的元素設為 value
public
void
setpos
(int pos,
int value)
//刪除第一次出現的關鍵字key
public
void
remove
(int key)if(
search
(key)==-
1)int i=
search
(key)
;while
(i<
this
.usedsize-1)
this
.usedsize-=1;
}// 獲取順序表長度
public
intsize()
// 清空順序表
//置為0
public
void
clear()
//擴容 不可能在原來基礎上擴容
private
void
grow()
}
保安日記 番外篇之網路協議
網路層 ip 網路之間互連的協議 lnternet protocol 相當於網路中的乙個節點,類似於位址,我們稱之為ip位址同乙個網路中,ip位址具有唯一性 ipv4網路使用32位位址,以點分十進位制表示,如192.168.0.1 127.0.0.1 本機 192.168 家庭路由器 10 內部區域...
保安日記 番外篇之軟體測試(一)
一 軟體測試定義 通過手工或者工具對被測物件進行測試操作,從而驗證實際結與預期結果之間是否存在差異。二 軟體測試的作用 通過測試工作可以發現並修復軟體當中存在的缺陷,從而提高使用者對產品的使用信心。測試可以記錄軟體執行過程中產生的一些資料.從而為決策提供資料支援。測試可以降低同型別產品開發遇到問題的...
保安日記之標準庫中的棧及佇列基本操作
一 前言 之前的兩篇部落格我們根據棧和佇列後進先出 先進先出的特點對這兩種資料結構用順序表和煉表分別進行了實現,也有了一定的了解,這篇我們就來介紹一下標準庫中的棧和佇列 二 棧2.1 標準庫中的棧 標準庫中的stack是乙個class 2.2 棧的操作 public class main 2.3 棧...