- ベストアンサー
C#かJavaで、配列の中から別の配列を探し出す
お世話になります。 C#かJava(CやC++は入れない)で、特定の配列の中に、該当する 配列があるかどうかを調べるメソッドがあれば、教えてください。 例えば… int[] a={0,0,0,1,2,3,4,5,6,7}; int[] b={3,4,5}; ならば、『5』が返ってくるなどです。 力技では、aの配列を順にみていき、bの一番目と同じなら、 お互いの配列の次の要素を比較…などとやっていくのですが、 これらの方法を、標準のメソッドがあれば…と思い、 質問させていただきました。 以上、よろしくお願いいたします。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
Javaだけの話です。(以下、indexはbの添字) int型配列aに含まれるint型配列bの要素の先頭の添字だけ欲しい場合 Arrays.binarySearch(a,b[index]); int型配列aに含まれるint型配列bの要素の全添字欲しい場合 Arrays.binarySearch(a,from,to,b[index]);//from,toは配列aの走査対象要素 配列がオブジェクト型でもいいなら、Listを実装したクラス(ArrayListなど)に放り込みます。 オブジェクト型配列aに含まれるオブジェクト型配列bの要素があるか否か listA.contains(b[index]); オブジェクト型配列aに含まれるオブジェクト型配列bの要素の先頭の添字だけ欲しい場合 listA.indexOf(b[index]); オブジェクト型配列aに含まれるオブジェクト型配列bの要素の最後の添字だけ欲しい場合 listA.lastIndexOf(b[index]); 最初に見つかる添字だけ欲しいなら標準ライブラリで取得できますが、 全添字が欲しいとなると途端に泥臭くなります。
お礼
ありがとうございました。 …C#ではないのでしょうか…。