• ベストアンサー

配列の値をまとめる?

いつもお世話になっております。 Javaプログラミングについて質問させてください。 プログラム中で配列を用意しています。 (String[] param = new String[7]) この配列には値が入っています。 (param[0]="000",param[1]="000",param[2]="000",param[3]="111",param[4]="111",param[5]="333",param[6]="333") 配列に入っている値は全部で7つですが、種類としては3つです。 ("000","111","333") 配列に入っている値を元に、上記の種類(3つ)を格納するようなメソッドはありますか? ご存知の方がいらっしゃいましたら、ご教授ください。 宜しくお願い致します。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.2

失礼しました。 HashSetが使えそうです。 addメソッドに 「指定された要素がセットの要素として存在しない場合に、その要素をセットに追加します。」 とありますので。 sizeメソッドで要素の数を取得できます。 他詳細はJavaDocを参照して下さい。

u_witch
質問者

お礼

ご回答ありがとうございます。 HashSet、使えそうです! ただ、取得した値の順序が保障されてないみたいですね。。。

すると、全ての回答が全文表示されます。

その他の回答 (4)

  • tachiwa
  • ベストアンサー率34% (25/73)
回答No.5

初歩的なものはいかがでしょう。 class ArrayEditor01 { public static void main(String args[]){ String[] param = new String[7]; String a=""; String b=""; String c=""; int k=0; param[0]="000"; param[1]="000"; param[2]="000"; param[3]="111"; param[4]="111"; param[5]="333"; param[6]="333"; a = param[0]; for(int i = 0; i < param.length; i++){ if( !a.equals(param[i])){ b = param[i]; k = i; break; } } for(int j=k;j<param.length;j++){ if(!b.equals(param[j])){ c=param[j]; } } System.out.println(a); System.out.println(b); System.out.println(c); } }

u_witch
質問者

お礼

ご回答ありがとうございます。 無事解決しました。

すると、全ての回答が全文表示されます。
  • nimua
  • ベストアンサー率21% (8/38)
回答No.4

ArrayList に既に格納されているもの以外を追加していけばどうでしょう? ArrayList#contians() は、既に同じもの(equals比較)が格納されている場合に、true を 返します。 ArrayList list = new ArrayList(); for (int i = 0; i < array.length; i++) { String value = array[i] if (! list.contains(value) { list.add(value); } } listのまま使うなら終わりです。 配列に戻すなら、 String[] newArray = (String[]) list.toArray(new String[list.size()]); で。

u_witch
質問者

お礼

ご回答ありがとうございます。 無事解決しました。

すると、全ての回答が全文表示されます。
  • dyna_1550
  • ベストアンサー率34% (122/353)
回答No.3

順序が要件として必要なら、以下のクラスがあります。 LinkedHashSet

u_witch
質問者

お礼

ご回答ありがとうございます。 無事解決しました。

すると、全ての回答が全文表示されます。
回答No.1

>配列に入っている値を元に、上記の種類(3つ)を格納するようなメソッドはありますか? ないと思います。(私が知らないだけかもしれませんが。) HashMapのキーに配列の中身、値に任意の固定値を入れてみてはどうでしょうか? キーの数=配列の値の種類の数 になります。

すると、全ての回答が全文表示されます。

関連するQ&A