SORU
25 ŞUBAT 2009, ÇARŞAMBA


Bulma koleksiyonu içinde belirli bir özelliğe sahip tüm nesneler

Biraz karmaşık nesne, birçok özellikler, yaş gibi, en sevdiği kedi maması ve benzeri olan bir Kedi gibi.

Bir sürü Kedi Java bir Koleksiyon saklanır, ve 3, ya da Whiskas olanlar yaş arası tüm Kediler bulmam lazım. Elbette, belirli bir özelliği olan bu Kediler bulduğu özel bir yöntemi yazabilirim, ama bu birçok özellikleri ile hantal alır; bunu yaparken bazı genel yolu var mı?

CEVAP
25 ŞUBAT 2009, ÇARŞAMBA


Commons koleksiyon API deneyin:

List<Cat> bigList = ....; // master list

Collection<Cat> smallList = CollectionUtils.select(bigList, new Predicate() {
    public boolean evaluate(Object o) {
        Cat c = (Cat)o;
        return c.getFavoriteFood().equals("Wiskas") 
            && c.getWhateverElse().equals(Something);
    }
});

Tabii ki isimsiz bir sınıf kullanmak zorunda değilsinherzaman, yaygın olarak kullanılan * Predicate arabirim uygulamaları oluşturabilirsiniz.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Ama Jenna

    Ama Jenna

    29 NİSAN 2011
  • Autodesk 3ds Max Learning Channel

    Autodesk 3ds

    23 HAZİRAN 2010
  • Marina and The Diamonds

    Marina and T

    8 Temmuz 2008