将数据放入另一个类的构造函数中

时间:2012-12-11 17:40:15

标签: java list vector

我有一个类调用ClientIdBandwidth.java,如下所示

public class ClientIdBandwidth
{
private int clientID;
private int bandwidth;

public ClientIdBandwidth(int clientID , int bandwidth)
{
    this.clientID = clientID;
    this.bandwidth = bandwidth;
}

public int getClientID()
{
    return clientID;
}

public int getBandwidth()
{
    return bandwidth;
}
}

我想调用ClientIdBandwidth构造函数并将数据放入构造函数中?下面是我到目前为止所做的代码:

public class connectNode
{
private List[] connection;
private int totalClients;
totalClients = clientList.size(); //get the size from another class 
connection = new Vector[totalClients]; //  

for(int i = 0; i<totalClients; i++) 
    {
        connection[i] = new Vector(); 
    } 
for(int i = 0; i<totalClients; i++)
    {       
        int ID = (int)clientList.get(i);
        ClientIdBandwidth cib = new ClientIdBandwidth(ID,'0');
            }
之后,我不知道如何继续。任何人都可以教我吗?提前谢谢

更新

抱歉,我没说清楚。

我现在正在做一个p2p模拟器。我有一个文本文件:

0; 2; 100; //节点0以100kbps连接到节点2

1; 5; 200; //节点1以200kbps

连接到节点5

我有一个将读取txt文件的类。并且它已经在列表中放置了多少节点(在上面的示例中是4,即节点0,2,1,5)。现在我想设置像节点0连接到节点2带宽到矢量。

1 个答案:

答案 0 :(得分:1)

在大多数情况下,您的代码会以意想不到的方式运行。您的构造函数需要2个整数参数,但是您传递的是一个整数和一个'char'类型。这可能是你卡住/代码不工作/错误结果等的原因(你没有说明确切的问题)。

否则,您的ClientBandwith对象将在for循环中创建。它在for循环中被创建和销毁。最后,当for循环完成时,将没有实例。因此,在for循环之后,ClientBandwith类将保持不变,没有EXISTING对象,因此您无法使用getter获取任何内容。在这种情况下,您甚至不会注意到发生了什么。所以你抱怨你不能“将数据放入构造函数中”因为实例被破坏了?

除此之外,

  1. 'Vector'很慢且过时了。使用ArrayList

  2. 如果你知道Vector的确切大小,我认为选择一个数组是一个不错的选择

  3. 您正在Vector中创建一个Vector。这在这里真的很有用吗?

  4. 使用泛型

  5. 您正在使用2 for循环。但正如您所看到的,您的工作可以通过1 for循环完成。

  6. 遵循Java命名标准。你的第二节课以简单的字母开头

  7. 如果您希望将Vector中的所有数据加载到构造函数中,则系统将无法运行。接受List类型作为参数

  8. 当您提出问题时,请告诉我们您的确想做什么