- 入門
反復モードと関係なく、集約オブジェクトの内部表現の、コンテンツオブジェクトにおける逐次重合によってアクセス。ように削除()または削除()と;すなわち、当事者のすべての内容は、オブジェクトを介してインターフェースを介して、関係なく、基本的な実装の、リンクされたリスト又はアレイです。
コンテナの役割:標準インタフェースの定義は、リストは、設定してください。
詳細コンテナの役割:特定の基礎となる実装、LinkedListのリスト特定の実装、ArrayListの配列の実装。#サンプルのアレイを実装するためのコード、および組み込みの要素カスタムオブジェクトであるため、一般的な反射は、実装の基礎となります
イテレータの役割:次の()、のhasNext()
特定のイテレータの役割
- クラス図
- コード
パブリック インターフェイスイテレータ<T> { パブリックT次に()。 パブリック ブールのhasNext(); } パブリック クラス ConcreteIterator <T>を実装するイテレータ<T> { プライベート集合<T> リストを、 プライベート int型のインデックス。 公共 ConcreteIterator(集合<T> のリスト){ この .LIST = リスト。 インデックス = 0 ; } パブリックT次に(){ 戻り list.get(インデックス++ )。 } パブリック ブールのhasNext(){ 場合(インデックス> = はlist.size()){ 戻り 偽。 } 他{ 戻り 真。 } } } パブリック インターフェイス集約<T> { 公共 ボイド追加(Tオブジェクト); 公共 Tの取得(int型のインデックス); 公共イテレータ<T> イテレータ(); 公共 int型のサイズ(); } インポートjava.lang.reflect.Array。 パブリック クラスConcreteAggregate <T> 実装集合<T> { プライベートT []リスト。 プライベート int型のサイズ= 0 ; プライベート int型のインデックス= 0 ; 公共 ConcreteAggregate(クラス<T>型、int型のサイズ){ リスト = (T [])Array.newInstance(タイプ、サイズ)。 } 公共 ボイド追加(Tオブジェクト){ リスト[インデックス ++] = オブジェクト。 サイズ ++ ; } パブリック T GET(int型のインデックス){ リターンリスト[インデックス]。 } 公共イテレータ<T> 反復子(){ 戻り 新しい ConcreteIterator <T>(この)。 } 公共 int型のサイズ(){ 戻りサイズ; } } パブリック クラスメイン{ 公共 静的 ボイドメイン(文字列[]引数){ 集合の<item>テレビ= 新しい ConcreteAggregateの<item>(項目。クラス、10 )。 television.add(新しい項目( "CCTV1" )); television.add(新しい項目( "天津卫视" )); television.add(新しい項目( "金鹰卡通" )); television.add(新しい項目( "卡酷动画" )); 反復子の<item>イテレータ= television.iterator()。 一方、(iterator.hasNext()){ 商品アイテム = iterator.Next()。 System.out.println(item.getName())。 } } }