追加条件付きのソート文字列のテストに問題があります。
テーブルには、文字列を含む列が含まれています。文字列はアルファベット順にソートできます。ただし、記号「[」で始まる行は、数字で始まる行よりも優先度が低いという追加の条件があります。
まず、アルゴリズムがわかりません。第二に、テスト方法がわかりませんが、主にソートに使用するアルゴリズムを使用する必要があります(ただし、アルゴリズムに誤った実装が含まれている場合、テストでは問題が見つかりません)
追加条件付きのソート文字列のテストに問題があります。
テーブルには、文字列を含む列が含まれています。文字列はアルファベット順にソートできます。ただし、記号「[」で始まる行は、数字で始まる行よりも優先度が低いという追加の条件があります。
まず、アルゴリズムがわかりません。第二に、テスト方法がわかりませんが、主にソートに使用するアルゴリズムを使用する必要があります(ただし、アルゴリズムに誤った実装が含まれている場合、テストでは問題が見つかりません)
難しい部分はすでに完了しています: 比較アルゴリズムを実装します。実際にテストするには、a で始まる文字列と数字で始まる文字列を含むデータ セットを任意の順序で作成し、[
並べ替えアルゴリズムを呼び出して、文字列が期待どおりの順序であることを確認します。
List<String> toSort = Arrays.asList(new String[] {"[123", "1234", "[234", "0123"});
Collections.sort(toSort, new YourComparator());
assertEquals(Arrays.asList("0123", "1234", "[123", "[234"), toSort);
すべての条件付きルールを実装するカスタム コンパレータを作成し、それが保持されているかどうかを確認します。
MyCustomComparator c = new MyCustomComparator();
for(int i=0; i < tab.size()-1; i++){
if(!c.compare(tab[i], tab[i+1])){
throw new Exception("Not sorted");
}
}
tab
ソートされた文字列のコレクションはどこにありますか。
編集:もちろん、これは条件付きルールが矛盾していないことを前提としています。たとえば、次のような状況a < b && b < c && c < a
は発生しません。