Name と Year の 2 つのフィールドを持つ arraylist があります。この配列を条件入力名でソートしたい(名前入力順)。名前が同じ場合は年順になります。
Example
Name Year
Ann 2000
Bech 2001
Bach 2013
Bach 2012
Chu 1999
入力が Bach でソートされる関数を作成するとします。結果が表示されます
Name Year
Bach 2013
Bach 2012
Ann 2000
Bech 2001
Chu 1999
入力がバッハで一番最初が「バッハ」で全ての名前を表示したいので同じ名前の場合は年順(大きいものから小さいもの)でソートします。「バッハ」名が同じでない場合は、compareTo() を使用して AZ で並べ替えます。これは私のコードですが、入力条件名がありません。新しい関数を作って同じように助けてください sort_inputname(String inputname)
//Class compare Name- Year
public class Search_Name_Year_Comparator implements Comparator<SearchListInformation>
{
public int compare(SearchListInformation left,
SearchListInformation right) {
// TODO Auto-generated method stub
int dateComparison;
int dataComparison = 0;
if(left.getName().compareTo(right.getName())==0)
{
if(left.getYear().compareTo(right.getYear())>0)
{
return -1;
}
else if(left.getYear().compareTo(right.getYear())<0)
{
return 1;
}
else
return 0;
}
else
return left.getName().compareTo(right.getName());