我有興趣問題。有一個抽象類,它將被子類擴展。 在抽象類有以下方法:Java - 不是匿名比較器模擬從集合中選擇元素
public abstract class MyAbstractClass {
protected List<MyObject> findSpecificObjects(List<MyObject> objectsToSelectFrom, List<MyObject> objectsToCompare) {
List<MyObject> selected = new ArrayList<MyObject>();
//there I need to select elements from objectsToSelectFrom
//using MyComparatorAnalogue with objectsToCompare
return selected;
}
protected class MyComparatorAnalogue implements ??? {
/*this comparator analogue should have an access to objectsToCompare
it must select elements from objectsToSelectFrom with property myProperty=someValue, where someValue - value that no one element from objectsToCompare have in the same property myProperty
*/
}
}
爲什麼我應該這樣做這樣一個奇怪的方式 - 因爲我需要能夠覆蓋MyComparator在子類中。有什麼辦法可以做我想做的事嗎?我看了一下Apache Commons Collections,但在這種情況下沒有找到任何可以幫助我的東西。
例如:
objectsToSelectFrom = {[key=Michael,value=23],[key=Luis,value=44],[key=Andrew,value=26]}
objectsToCompare = {[key=John,value=23],[key=Luis,value=44]}
假設myProperty
是value
屬性MyComparatorAnalogue
應該選擇[key=Andrew,value=26]
元件。
希望我可以用它來描述它。謝謝。
你想過濾一個whilelist的'List'嗎? –
2015-04-01 07:29:51
是的,類似的東西。但objectsToSelectFrom和objectToCompare中的對象不相同,它們只具有(或不具有)相同的myProperty值。 – 2015-04-01 07:38:42