韓国を訪れた際、

和集合
和集合とは
和集合とは、
和集合の記号∪と全体集合の記号Uはよく似ているので紛らわしく見えます。手で書く際には全体集合の記号Uの開いた側を釘の頭のようにつぶして書くと良いでしょう。

和集合の要素数
図35.
和集合演算は二つの集合を
和集合と現実問題
コンピュータを用いたデータ処理に当てはめて考えてみましょう。別々に収集された二つのデータの集合から、
ともあれ、

≡は

今回の例の場合は、
積集合
積集合とは
積集合とは、

積集合の要素数
集合AとBが図35.
和集合の時と同様、
積集合と現実問題
CADのデータをメモリに読み込み、
問題:集合とJava言語に関する以下の問いに答えてください。
解説
(1)二つの集合の和集合をとり、結果を表示するプログラムを作りましょう。集合の格納には配列を用いてください。
和集合演算を配列を用いて行ってみます。MAX_
//サンプルコード
//和集合をとる
//filename : HairetsuDeWashugo.java
class HairetsuDeWashugo {
static final int MAX_LENGTH = 255; //配列長の最大値
public static void main(String[] args) {
int a[] = {1,2,3,5,8}; //集合a
int b[] = {2,4,5,7,9}; //集合b 重複あり
// int b[] = {4,7,9,10,13}; // 重複なし
// int b[] = {2,5}; // a はb を包含する
// int b[] = {1,2,3,4,5,7,8}; // bはaを包含する
int c[] = new int[MAX_LENGTH]; //集合c
int nElementsC = 0; //集合c の要素数
//C <- A cup B
System.arraycopy(a,0,c,0,a.length); //配列のコピー。便利。
nElementsC = a.length;
boolean match = false;
for( int i=0; i<b.length ; ++i){
for( int j=0; j<a.length; ++j){
if (b[i] == a[j]){
match = true;
break;
}
}
if (match == false) {
c[nElementsC]=b[i];
++nElementsC;
}
match = false;
}
//結果表示
for( int i = 0 ; i < nElementsC; ++i ){
System.out.println("c["+i+"]=" + c[i]);
}
}// end of main
}// end of class HairetsuDeWashugo
(2)二つの集合の積集合をとり、結果を表示するプログラムを作りましょう。集合の格納にはArrayListを用いてください。
積集合演算をArrayListを用いて行います。
ソースコード:ArrayListDeSekishugo.java
//サンプルコード
//積集合をとる ArrayList 版
//filename : ArrayListDeSekishugo.java
import java.util.ArrayList;
class ArrayListDeSekishugo {
public static void main(String[] args) {
//集合A の宣言と初期化
ArrayList<Integer> A = new ArrayList<Integer>();
int a[] = {1,2,3,5,8};
for (int i = 0 ; i < a.length ; ++i ) A.add( a[i] );
//集合B の宣言と初期化
ArrayList<Integer> B = new ArrayList<Integer>();
int b[] = {2,4,5,7,9}; //集合b 重複あり
// int b[] = {4,7,9,10,13}; // 重複なし
// int b[] = {2,5}; // a はb を包含する
// int b[] = {1,2,3,4,5,7,8}; // b はa を包含する
for (int i = 0 ; i < b.length ; ++i ) B.add( b[i] );
//集合C の宣言
ArrayList<Integer> C = new ArrayList<Integer>();
//C <- A cap B
for( Integer i : A ) {
if ( B.contains( i ) ) C.add(i);
}
//結果表示
for( int i = 0 ; i < C.size() ; ++i ){
System.out.println("C.get("+i+")=" + C.get(i) );
}
}// end of main
}// end of class ArrayListDeSekishugo
ArrayListを用いると、for(Integer i:A){
の部分で、
- (a)
ループのブロック中でA. get (i) として要素を呼び出す代わりに、 - (b)
単純にiだけで済ませられるという利点があります。
(a)
慣れが必要ですが、