手書きは、ListインタフェースのArrayListクラスを実装します

 

インタフェース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 
挿入 
ワード 
6


* /

 

おすすめ

転載: www.cnblogs.com/fangtingfei/p/11261592.html