以下の2つの方法を実装したいと思います。SomeObjectには Date 型のフィールドcreatedDateがあります
private SomeObject getNearestObjectBeforeTargetObjectsCreatedDate(List<SomeObject> someObjectList, SomeObject targetObject){
}
private SomeObject getNearestObjectAfterTargetObjectsCreatedDate(List<SomeObject> someObjectList, SomeObject targetObject){
}
作成日の昇順で 5 つのオブジェクト P1、P2、P3、P4、P5 があるとします。ターゲット オブジェクトが P3の場合、1番目のメソッドは P2を返し、 2 番目のメソッドは P4 を返す必要があります。
現在、私はこのようなものを書いています
private SomeObject getNearestPortFolio(List<SomeObject> someObjectList, SomeObject targetObject){
SomeObject returnObject = targetObject;
for(SomeObject someObject : someObjectList) {
// if the current iteration's date is "before" the target date
if(someObject.getCreatedDate().compareTo(targetObject.getCreatedDate()) < 0) {
if (someObject.getCreatedDate().compareTo(returnObject.getCreatedDate()) > 0){
returnObject = someObject;
}
}
}
return returnObject;
}