Dateක්රියාත්මක කරන බැවින් Comparable, එයට compareToක්රමවේදයක් ඇත String.
එබැවින් ඔබගේ චාරිත්රය Comparatorමේ වගේ විය හැකිය:
public class CustomComparator implements Comparator<MyObject> {
@Override
public int compare(MyObject o1, MyObject o2) {
return o1.getStartDate().compareTo(o2.getStartDate());
}
}
මෙම compare()ක්රමය සඳහා නැවත යුතුය intඔබ කෙලින්ම ආපසු යා නොහැකි නිසා, booleanඔබ කෙසේ හෝ කිරීමට සැලසුම් විය වගේ.
ඔබේ වර්ග කිරීමේ කේතය ඔබ ලියා ඇති ආකාරයටම වනු ඇත:
Collections.sort(Database.arrayList, new CustomComparator());
මේ සියල්ල ලිවීමට තරමක් කෙටි ක්රමයක් නම්, ඔබේ සංසන්දකය නැවත භාවිතා කිරීමට ඔබට අවශ්ය නොවන්නේ නම්, එය පේළිගත නිර්නාමික පන්තියක් ලෙස ලිවීම:
Collections.sort(Database.arrayList, new Comparator<MyObject>() {
@Override
public int compare(MyObject o1, MyObject o2) {
return o1.getStartDate().compareTo(o2.getStartDate());
}
});
ඔබ දැන් භාවිතා කරන ලද්දේ කෙටි ස්වරූපයෙන් පසුගිය උදාහරණයක් ලියන්න පුළුවන් ලැම්ඩා ප්රකාශනය සඳහා Comparator:
Collections.sort(Database.arrayList,
(o1, o2) -> o1.getStartDate().compareTo(o2.getStartDate()));
හා Listසතුව sort(Comparator)ඔබ පවා තවදුරටත් මෙම කෙටි කර ගත හැක, ඒ ක්රමය:
Database.arrayList.sort((o1, o2) -> o1.getStartDate().compareTo(o2.getStartDate()));
මෙය එබඳු පොදු මෝඩකමක් වන අතර යතුරක් සහිත පන්තියක් සඳහා ජනනය කිරීම සඳහා සාදන ලද ක්රමවේදයක් ඇත :ComparatorComparable
Database.arrayList.sort(Comparator.comparing(MyObject::getStartDate));
මේ සියල්ලම සමාන ආකාර වේ.