簡単な答えは、配列を「セット」に変換してから、それらに対してセット操作を使用することです。私は今、そのための適切なコードを探していますが、この投稿をチェックすることから始めることができます: Java.util.Collection の古典的なセット操作
編集:Luke657は良い点をもたらします。プリミティブ配列は奇妙です。したがって、以下は更新されたコードです。
char 配列から始めると仮定します (もちろん、セットから始めるほうがよいでしょうが、まあまあです):
char[] arrayA = new char[] {'a', 'b', 'c', 'd', 'e', 'f'};
char[] arrayB = new char[] {'a', 'd', 'e'};
Character[] objarrayA = ArrayUtils.toObject(arrayA);
Character[] objarrayB = ArrayUtils.toObject(arrayB);
Set<T> setA = new HashSet(Arrays.asList(objarrayA));
Set<T> setB = new HashSet(Arrays.asList(objarrayB));
setA.removeAll(setB);
次に、それを char 配列に戻すには:
Character[] result;
result = setA.toArray(result);
char[] cresult = ArrayUtils.toPrimitive(result);
私はこれがあなたが必要とすることをすると信じています。操作は O(1) であるため、Arrays.asList()
効率的で計算コストがかからないため、余分な変換について心配する必要はありません。