// JRE 1.6.0_07
// Commons Lang 2.4
// org.apache.commons.lang.BooleanUtils.xor
// boolean配列の排他的論理和
// tag boolean xor
boolean bool;
// 排他的論理和を取ってみる
// trueとtrueを設定すれば、もちろんfalseになる
boolean[] barray1 = {true, true};
bool = BooleanUtils.xor( barray1 );
System.out.println( bool );
// => false
// true, true, trueの場合
boolean[] barray2 = {true, true, true};
bool = BooleanUtils.xor( barray2 );
System.out.println( bool );
// => false
// 複数の排他的論理和は、true が奇数個なら trueだと思っていたのだが、
// 上の処理の結果を見ると、どうやら違うらしい
// xorの中の処理を見ると、配列の中にtrueが1つのみの場合はtrue,
// それ以外はfalseを返している
// JavaDoc見たら、「a set of booleans」だそうです。。。
// Performs an xor on a set of booleans.
// BooleanUtils.xor(new boolean[] { true, true }) = false
// BooleanUtils.xor(new boolean[] { false, false }) = false
// BooleanUtils.xor(new boolean[] { true, false }) = true