私が必要とするのは、カスタム方法でリストを注文することです。正しい方法を探して、GuavaのOrdering APIを見つけましたが、注文しているリストがいつも同じではないということです。部分的な明示的な注文と別の注文の注文?
public static class SupportedAccountsComparator implements Comparator<AccountType> {
Ordering<String> ordering = Ordering.explicit(ImmutableList.of("rrsp", "tfsa"));
@Override
public int compare(AccountType o1, AccountType o2) {
return ordering.compare(o1.type, o2.type);
}
}
:私は、グアバライブラリ内のカスタムコンパレータと使用して注文して、このような何かを試してみました
List<AccountType> accountTypes = new ArrayList<>();
AccountType accountType = new AccountType();
accountType.type = "tfsa";
AccountType accountType2 = new AccountType();
accountType2.type = "rrsp";
AccountType accountType3 = new AccountType();
accountType3.type = "personal";
accountTypes.add(accountType3);
accountTypes.add(accountType2);
accountTypes.add(accountType);
//The order I might have is : ["personal", "rrsp", "tfsa"]
//The order I need is first "rrsp" then "tfsa" then anything else
:ちょうどたとえば、私はこれを持って、リストの一番上になるように2つのフィールドを必要とします明示的な順序付けがあなたが提供したリストにない他の項目をサポートしていないために例外をスローします。部分的な明示的なoを行う方法がありますラダー?
Ordering.explicit(ImmutableList.of("rrsp", "tfsa")).anythingElseWhatever();
何あなただけの他のすべてのタイプのためにこれら二つのアカウントの種類の '1'と '2'と '0'になりAccountType' 'でプロパティ(' order'/'priority')を有していた場合は?そして主にそのプロパティに基づいて順序を定義します。 –
[Guava:リストと単一の要素からの明示的な順序付けを作成する方法](http://stackoverflow.com/questions/14403114/guava-how-to-create-an-explicit-ordering-from) -a-list-and-a-single-element) –