2 つの名前文字列を比較するために、Java で自己記述のコンパレーターを使用しています。
public class NamesSorter implements Comparator<EntityBean>{
@Override
public int compare(EntityBean a1, EntityBean a2) {
return a1.getName().compareToIgnoreCase(a2.getName());
}
}
このソーターを使ったメインコード
final Set<EntityBean> treeSet = new TreeSet<EntityBean>(new NamesSorter()); final List<EntityBean> firstListToCompare=display.getAvailablePeople().getItems(); final List<EntityBean> SecondListToCompare=display.getAvailablePeople().getItems(); treeSet.addAll(firstListToCompare); treeSet.addAll(secondListToCompare);
次の入力でこのコードを実行すると
firstListToCompare アメリア、ジョージ、ミーガン
2 番目のリストは、ジョージ ウォッシュ、ファングを比較します。
結果は
アメリア、ファング、ジョージ、ミーガン、ジョージ・ウォッシュ。
コンパレーターに無視されたケースがある場合、なぜジョージ・ウォッシュを最後までプッシュするのですか?
getName メソッド。
public String getName() {名前を返します。}
2 つの文字列の間にスペースがある名前は、George Wash (George と Wash の間にスペースがある) のように、リストの最後になります。