インタフェースMyLlist.java
1つの パッケージcn.ftf.myarraylist。 2 3 パブリック インターフェイスMYLIST { 4 公共 ボイドクリア(); 5 パブリック ブールのisEmpty()。 6 公共 int型の長さ()。 7 パブリックオブジェクトのget(int型 i)がスロー例外。 8 公共 ボイド追加(オブジェクトobj); 9 公共 ボイド挿入図は、(int型私は、オブジェクトobjを)投げる例外を。 10 公共 のボイドのremove(int型ⅰ)スロー例外。 11 公衆 INT のindexOf(オブジェクトOBJ)。 12 公共 ボイドディスプレイ(); 13 }
コレクションMyArrayList.java
1つの パッケージcn.ftf.myarraylist。 2 3 パブリック クラス MyArrayListが実装MYLISTを{ 4 プライベートオブジェクト[] OBJ。 5 プライベート int型の A = 3 ; 6 プライベート int型 curLenで指定= 0 ; 7 8 9 パブリックMyArrayList(){ 10 スーパー()。 11 OBJ = 新しいオブジェクト[A]。 12 } 13 14 @Override 15 公共 ボイドクリア(){ 16 curLenで指定= 0 ; 17 } 18 19 @Override 20 パブリック ブールのisEmpty(){ 21 リターン curLenで指定== 0 。 22 } 23 24 @Override 25 公共の int型の長さ(){ 26 リターンcurLenで指定。 27 } 28 29 @Override 30 パブリックオブジェクトのget(int型 i)がスロー例外{ 31の 場合(I <0 || I> curLenで指定-1 ){ 32 投 新しい例外( "第" + i "が!个元素不存在" + ); 33 } 34 リターンOBJ [I]。 35 } 36 37 @Override 38 公共 ボイド追加(オブジェクトobj){ 39 であれば(curLenで指定== A){ 40 = A * 2 。 41 オブジェクト[] B = この.OBJ。 42 この .OBJ = 新しいオブジェクト[A]。 43 のために(int型 i = 0; iが++; I <= curLenで指定-1 ){ 44 この .OBJ [I] =の[I] Bと、 45 } 46 } 47 この [curLenで指定] .OBJ = OBJ。 48 curLenで指定++ ; 49 } 50 @Override 51 公共 ボイド挿入図は、(int型私は、オブジェクトobj)はスロー例外{ 52 あれば(私は<0 || i>を{curLenで指定) 53 スロー 新しい例外を( "插入位置非法!" ); 54 } 55 であれば(curLenで指定== A){ 56 、A = A * 2 。 57 オブジェクト[] B = この.OBJ; 58 この .OBJ = 新しいオブジェクト[A]。 59 のために(INT ; I1 <= curLenで指定-1; 0 = I1 I1 ++ ){ 60 この .OBJ [I1] =のB [I1]。 61 } 62 } 63 のために(INT II = curLenで指定-1; II> = I; ii-- ){ 64 本の.OBJ [II + 1] = この.OBJ [II]。 65 } 66 この .OBJは[I] = OBJ。 67 curLenで指定++ ; 68 } 69 70 @Override 71 公共の ボイドのremove(int型 i)がスロー例外{ 72 あれば(私は<0 || i>を{curLenで指定) 73 スロー 新しい例外を( "移除位置非法!" ); 74 } 75 のために(INT II = I + 1; II <= curLenで指定し、ii ++ ){ 76 OBJ [II] = OBJ [II-1 ]。 77 } 78 curLen-- 。 79 } 80 81 @Override 82 公共 のint のindexOf(オブジェクトobj){ 83 用(int型 0 = Iと、iが<= curLenで指定; iは++ ){ 84 であれば(この.OBJ [I] .equals(OBJ)){ 85 リターンI。 86 } 87 } 88 リターン -1 。 89 } 90 91 @Override 92 公共 ボイドディスプレイ(){ 93 のために(int型 I = 1; I <= curLenで指定; iは++ ){ 94 のSystem.out.println(OBJ [I-1] +」 " )。 95 } 96 97 } 98 99 }
TestクラスTest01.java
1つの パッケージcn.ftf.myarraylist。 2 3 パブリック クラスTEST01 { 4 パブリック 静的 ボイドメイン(文字列[]引数)をスロー例外{ 5 MyArrayListミリアンペア= 新しいMyArrayListを(); 6 MYLISTミリリットル= 新しいMyArrayList()。 7 ml.add(1 )。 8 ml.add( "ハロー" )。 9 ml.add(2 )。 10 ml.add( "言葉" )。 11 ml.display(); 12 13 System.out.println(ml.get(3 )); 14 ml.inset(図3、 "挿入" ); 15 ml.inset(3、 "2を挿入する"。); 16 ml.display(); 17 システム.out.println(ml.length()); 18である のSystem.out.println(ml.isEmpty()); 19 ml.clear(); 20である のSystem.out.println(ml.isEmpty()); 21は 22である 23であります } 24 25 }
/ *
演算結果:(エラーなし)
。1
ハロー
2
ワード
ワード
1
ハロー
2
インサート2
挿入
ワード
6
偽
真
* /