C#のBinarySearch()メソッドの使い方を徹底解説
BinarySearch()メソッドは、数値・英数字・文字列を問わず、ソート済みのリストから指定した要素のインデックス(位置)を検索するためのメソッドです。内部的には二分探索(バイナリサーチ)アルゴリズムを採用しているため、先頭から順に調べる線形検索よりもはるかに高速に目的の要素を見つけられます。
基本的な使い方
まず、以下のような整数型のリストを用意します。
List<int> list = new List<int>(); list.Add(70); list.Add(150); list.Add(220); list.Add(250); list.Add(300);
このリストの中で「250」がどのインデックスに格納されているかを調べるには、次のようにBinarySearch()メソッドを呼び出します。
list.BinarySearch(250);
サンプルコード
実際にプログラム全体で動作を確認してみましょう。
using System;
using System.Collections.Generic;
class Demo {
static void Main() {
List<int> list = new List<int>();
list.Add(70);
list.Add(150);
list.Add(220);
list.Add(250);
list.Add(300);
int value = list.BinarySearch(250);
Console.WriteLine("Element 250 at Index: " + value);
}
}
実行結果
Element 250 at Index: 3
このように、リスト内の4番目の要素(インデックスは0から始まるため「3」)として250が検出されました。
利用時の注意点
BinarySearch()メソッドを正しく動作させるには、リストがあらかじめ昇順にソートされていることが前提です。ソートされていないリストに対して使用すると、誤った結果が返される可能性があります。必要に応じてSort()メソッドなどで事前に並べ替えておきましょう。
また、検索対象の要素がリストに存在しない場合は負の値が返されます。この戻り値のビットごとの補数(~演算子)を取得すると、その要素を挿入すべき適切な位置のインデックスを知ることができるため、挿入位置の特定にも活用できます。
-
C#でリストを並べ替える方法を解説!Sort()メソッドの使い方
C#でリスト(List)の要素を並べ替えるには、Sort()メソッドを使用します。Sort()メソッドは、リスト内の要素を既定の比較子に従って昇順に並べ替えてくれる便利なメソッドです。ここでは、文字列型のリストを作成し、Sort()メソッドでアルファベット順に並べ替える基本的な手順を紹介します。リストの作成まず、並べ替え対象となるリストを作成します。List<string> myList = new List<string>();要素の追加次に、Add()メソッドを使ってリストに要素を追加していきます。myList.Add(Audi); myList.Add(BMW);
-
JavaのList.replaceAll()メソッドの使い方を解説!UnaryOperatorでリスト要素を一括置換する方法
JavaのListインターフェースが提供するreplaceAll()メソッドは、UnaryOperator型のオブジェクトを受け取り、現在のリスト内のすべての要素に対して指定された処理を実行し、その結果で既存の値を置き換えるメソッドです。 replaceAll()メソッドの基本構文 void replaceAll(UnaryOperator<E> operator) UnaryOperatorは、同じ型の引数を1つ受け取り、同じ型の結果を返す関数型インターフェースです。つまり、リストの各要素に対して「入力と出力が同型」の変換処理を適用するのに適しています。 実装例 以下の例では、U