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()));
මෙය එබඳු පොදු මෝඩකමක් වන අතර යතුරක් සහිත පන්තියක් සඳහා ජනනය කිරීම සඳහා සාදන ලද ක්රමවේදයක් ඇත :Comparator
Comparable
Database.arrayList.sort(Comparator.comparing(MyObject::getStartDate));
මේ සියල්ලම සමාන ආකාර වේ.