要件:削除重複要素のコレクション
分析:
1、一時保存容器
2、回収サイクルを経て(反復)
3は、それが一時的な素子容器があったか否かが判断される(含有します)
A、記憶素子(カスタムタイプ)のタイプを定義
1つの パブリック クラス人{ 2 3 プライベート文字列名; 4 プライベート int型の年齢; 5 6 パブリック人(){ 7 スーパー()。 8 } 9 10 公衆人(文字列名、int型の年齢){ 11 スーパー(); 12 この .nameの= 名前; 13 この .age = 年齢; 14 } 15 16 公共の文字列のgetName(){ 17 リターン名前; 18 } 19 20 公共の ボイドのsetName(文字列名){ 21 この .nameの= 名前。 22 } 23 24 公衆 INT getAge(){ 25 リターン年齢。 26 } 27 28 公共 ボイド setAge(INT 年齢){ 29 この .age = 年齢。 30 } 31 32 @Override 33 公共 int型のハッシュコード(){ 34 のSystem.out.println(この + ":-------のhashCode" ); 35 リターン この .name.hashCode()+ 本.age。 36 } 37 38 @Override 39個の 公共 ブール等しい(オブジェクトobj){ 40 のSystem.out.println(これ +は:+ "------- -------等しい" OBJ)。 41 もし((OBJ!instanceofの人)) 42 スロー 新しい ClassCastExceptionが( "类型不对" ); 43 人の人= (人物)OBJ。 44 戻り 、この.name.equals(person.name)&& person.age == この.age。 45 } 46 47 @Override 48 パブリック文字列のtoString(){ 49 50 リターン この .nameの+ ":" + この.age。 51 } 52 }
第二に、ビジネス・ロジック・コード
1つの インポートjava.util.ArrayListの。 2 インポートするjava.util.Iterator。 3 4 インポートcn.marw.common.bean.Person。 5 6 パブリック クラスArrayListTest { 7 8 パブリック 静的 ボイドメイン(文字列[]引数){ 9 のArrayList ARR = 新しいArrayListを()。 10 11 arr.add(新しい人物( "zhang1"、21 ))。 12 arr.add(新人物( "zhang2"、22 )); 13 arr.add(新人物( "zhang3"、23)); 14 arr.add(新人物( "zhang4"、24 )); 15 arr.add(新人物( "zhang2"、22 )); 16 17 のSystem.out.println( "去重前:-----" + ARR)。 18 19 ARR = getSignalElement(ARR)。 20 21 のSystem.out.println( "去重后:-----" + ARR)。 22 } 23 24 プライベート 静的ArrayListのgetSignalElement(ArrayListのARR){ 25 のArrayList TEMP = 新しいArrayListを()。 26 イテレータそれ= (arr.iterator)を、 27 一方(it.hasNext()){ 28 人物P = (人物)it.next(); 29 30 であれば(!のtemp.contains(P)){ 31 temp.add(P)。 32 } 33 } 34 リターンTEMP。 35 } 36 }
結果:
要約:
要素が等しい場合のArrayListは、ある要素の同じセット、か否かを判断します
ArrayListの方法が含まれており、要素に等しいすべてが依存削除します