Java 退回收藏

Java 退回收藏,java,collections,Java,Collections,我需要返回一个接受Connection类的集合,但它不断返回一个错误:“找不到符号”。我对如何归还收藏缺乏了解。取station的参数 方法如下: @Override public Collection<Connection> getConnectionsFrom(Station station) { return Collection<Connection>(station); } @覆盖 公共收集getConnectionsFrom(站点){ 回收站; }

我需要返回一个接受Connection类的集合,但它不断返回一个错误:“找不到符号”。我对如何归还收藏缺乏了解。取station的参数

方法如下:

@Override
public Collection<Connection> getConnectionsFrom(Station station) {
    return Collection<Connection>(station);
}
@覆盖
公共收集getConnectionsFrom(站点){
回收站;
}
下面是连接类:

public class TrainConnection implements Connection {

    double distance;

    private Map<String, Connection> connectionMap;

    public static TrainConnection newConnection = new TrainConnection();

    @Override
    public double getDistance() {
        return distance;
    }

    @Override
    public Station getStationA() {
        throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
    }

    @Override
    public Station getStationB() {
        throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
    }

    @Override
    public Station getOtherStation(Station station) {
        throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
    }

}
公共类列车连接实现连接{
双倍距离;
私有地图连接地图;
公共静态列车连接newConnection=新列车连接();
@凌驾
公共双getDistance(){
返回距离;
}
@凌驾
公共电台{
抛出新的UnsupportedOperationException(“尚未受支持”);//若要更改生成的方法体,请选择“工具”“模板”。
}
@凌驾
公共电台getStationB(){
抛出新的UnsupportedOperationException(“尚未受支持”);//若要更改生成的方法体,请选择“工具”“模板”。
}
@凌驾
公共车站getOtherStation(车站){
抛出新的UnsupportedOperationException(“尚未受支持”);//若要更改生成的方法体,请选择“工具”“模板”。
}
}

作为如何修复GetConnectionFrom的示例,假设它实际上应该返回集合,如上所述

public Collection<Station> getConnectionsFrom(Station station)
{
   Collection<Station> connections = new ArrayList<>();
   connections.add(station);
   return connections;
}
公共收集getConnectionsFrom(站点)
{
集合连接=新建ArrayList();
连接。添加(站点);
返回连接;
}

但是,请注意,每次都会创建一个新的集合。您需要更具体地说明您试图解决的问题。

那么,您在getConnectionsFrom中的返回是错误的。集合不是特定的实现。因此,您必须实例化一个实现集合的特定对象,然后将站点添加到该集合中,然后返回它。
returncollection(station)您认为此代码的作用是什么?它没有调用构造函数,因为没有
new
。如果存在,则集合是一个接口,因此不能构造接口。您只能构造实现接口的具体类的实例(例如ArrayList或HashSet)。我在您的代码中看不到的另一件事是
Station
是什么。您指定要返回一个
集合
,但您尝试使用
@CacheStaheli实例化集合,观察得很好!这门课真糟糕。它有很多问题,所以我不知道我们是否能够帮助您解决收集问题。我真的搞不清楚
连接
之间有什么关系。为什么
列车连接
有其他连接的地图?该连接是否有其他连接?你是说它有站点吗?我还要补充一点,除非在我们没有的其他代码中注明,
站点
不是
连接
,所以你不能
添加
,这不会像@CacheStaheli指出的那样起作用,我假设他想要站点连接图中的连接,在这种情况下,他需要通过循环map@CacheStaheli,你完全正确。我更改了返回类型。@GordonAllocman,您可能对所需的功能是正确的。虽然在地图中循环并没有给出一个站点,因为键是一个字符串。@KevinO我的意思是获取地图中存储的所有连接值(我知道这在c#中相当简单,但我在java中对地图做得不多),然后将其放入某种列表中,这就是我解释asker的目的