2016-04-13 8 views
1

Belirli bir istasyonda başlayan veya biten bir ağdaki bağlantıları içeren bir koleksiyona dönmeye çalışıyorum. Bunu nasıl iade edeceğimi ve istasyon parametresini nasıl alacağımı bulmakta zorlanıyorum. Ayrıca metoda hashMap'in yaratılmasının doğru şekilde yapılmasına mı yoksa dışında mı yaratılmalı?Dönen koleksiyonlar

Bu dönüş ifadesi için bana hata incompatible types: Connection cannot be converted to Collection<Connection> veriyor

KODU: Sadece bir Connection iade ediliyor

/** 
* Return a Collection containing all the Connections in the network that 
* start or end at a specified station 
* 
* @param station Station to/from which the Connection should run 
* 
* @return a Collection containing all the connections that start or end at 
* the specified station 
*/ 

@Override 
public Collection<Connection> getConnectionsFrom(Station station) { 
    Map<Station, Connection> stationConnectionFrom = new HashMap<Station, Connection>(); 
    return stationConnectionFrom.get(station); 
} 
+2

Evet, bir bağlantı bağlantıları topluluğudur değildir. Bir koleksiyona geri dönmek isterseniz, bir tane oluşturmanız ve bağlantınızı (bağlantılarınızı) koymanız gerekir. – azurefrog

+1

Yeni oluşturduysanız haritada ne olacağını düşünüyorsunuz? – flakes

+0

a) harita boş, çünkü yeni yarattığınız için '' .get() 'null; b) '.get()', 'Bağlantı' örneğini döndürür çünkü haritanın değerlerini bir Bağlantılar topluluğu değil, tek bir 'Bağlantı' nesnesi olarak bildirdiniz. – dsh

cevap

2

. Bu hizmeti kullanmak için dönüş türü değiştirebilirsiniz: Senin durumunda

public Connection getConnectionFrom(Station station) { 
    Map<Station, Connection> stationConnectionFrom = new HashMap<>(); 
    return stationConnectionFrom.get(station); 
} 

, boş olan harita, bu her zaman null dönecektir. Eğer yöntem imzası değiştiremiyorsanız

+0

Genel Koleksiyon getConnectionsFrom (İstasyon istasyonu) desenini kullanmam gerekiyor. Değiştiremem! – codingmachine

1

, yapabileceğiniz:

@Override 
public Collection<Connection> getConnectionsFrom(Station station) { 
    Map<Station, Connection> stationConnectionFrom = new HashMap<Station, Connection>(); 
    return Collections.singletonList((stationConnectionFrom.get(station)); 
}