データの構造
アレイ達成
思考 Objiect クラスごとに一度入金のための配列は、ニーズや拡張を決定するのに十分な時間がないときは、時間
CRUDを実装
パッケージcn.jiedada._02inArray; インポート; java.util.Arrays / * 任意のデータに* *サイズ拡張オブジェクトクラス *の印刷私たちが望む * CRUDを達成 * * / パブリック クラスInArrayバリ{ オブジェクト[] DATE ; INT IndexSize = 0 ; int型captipy; //は、それらのメソッドを呼び出す パブリックInArrayバリを(){ この(5 ); } 公共 InArrayバリ(INT captipy){ この .captipy = captipy; DATE = 新しい新しいオブジェクト[captipy]; } 公共 ボイド追加(オブジェクトobj){ // 对数组进行扩容 場合(indexsize> date.length-1 ){ オブジェクト[] NEWDATE = 新しいオブジェクト[indexsize + 20 ]。 System.arraycopyの(日付、 0、NEWDATE、0 、indexsize)。 日付 = NEWDATE。 } 日付[indexsize] = OBJ。 indexsize ++ ; } / * 覆写文字列 * * / @Override パブリック文字列のtoString(){ オブジェクト[]オブジェクト = 新しいです【IndexSize]オブジェクト、 System.arraycopyの(DATE、 0、オブジェクト、0 、IndexSize); リターンArrays.toStringの(オブジェクト); } プライベート ボイド judje(int型のインデックス){ / * IF(インデックス<0 |インデックス> IndexSize){ System.out.println(+ IndexSize "の正しい番号を入力してください"); } * / IF(インデックス<0 |インデックス> IndexSize) スロー 新しい新しいアンは、ArrayIndexOutOfBoundsException(+ "正しい番号〜0を入力してください" IndexSizeを); } // 照会 パブリックオブジェクトselectElemple(int型のインデックス){ judje(インデックス)。 リターン日[インデックス]。 } // 查询 公共 のint selectNameElement(文字列名){ ため(int型 i = 0; iはdate.length <; iは++ ){ 場合(日付[I] .equals(名)){ リターンI。 } } 戻り -1 。 } // 删除 公共 ボイド deleteElement(int型のインデックス){ judje(インデックス) System.arraycopyの(日付、インデックス +1、日付、インデックス、indexsizeインデックス-1 )。 indexsize - ; } 公共 ボイドdeleteElement(文字列名){ int型のインデックス= selectNameElement(名); deleteElement(インデックス)。 } }
リストの実装
定義:次の値のデータオブジェクトを格納する必要があるとクエリのリスト横断する必要がある、クラス名で次の次の位置のアドレス値を格納するために、
パッケージcn.jiedada._03LinkList; パブリック クラスLINKLIST { ノードフリスト; // 先頭ポインタを作成し 、公共 のボイドの追加(オブジェクトオブジェクト){ ノードノード = 新しい新しいノード(オブジェクト); //は、先頭ポインタかどうかを判断する のIF(フリスト== nullの) { フリスト = ノード; } そうでなければ{ ノードTEMP = フリスト; // 次のノード、最後のノードをループ見つける ながら(!temp.next = NULL ){ TEMP =を temp.next。 } // 値が格納されている temp.next = ノード; } } @Override パブリック文字列のtoString(){ StringBuilderのStringBuilderの = 新しい新規のStringBuilder( "[" ); ノードTEMP、 TEMP = フリスト; IF(TEMP == NULL ){ 戻り ヌル; } // をループ、値が終了しない場合は最初の値かどうかを判断するため 、一方(TEMP =!ヌル){ // 次の判定がNULL値ではありません。 IF(temp.next!= nullを){ StringBuilder.Append(temp.object).append( "" ); // これはなぜtemp.nextできません= TEMP; } そうでなければ{ StringBuilder.Append(temp.object).append( "]" ); } TEMP = temp.next; } 戻りStringBuilder.ToStringを(); } } // アドレスの値リスト クラスをノード{ オブジェクトオブジェクト、 次のノードを; // 次の格納されたアドレス値 パブリックノード(){ // TODO自動生成コンストラクタスタブ } 公衆ノード(オブジェクトobj){ この .object = OBJ。 } }