-1

我有一个类调用 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,并将带宽连接到向量。

4

1 回答 1

1

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

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

除此之外,

  1. “向量”缓慢且过时。使用ArrayList.

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

  3. 您正在向量中创建向量。这里真的有用吗?

  4. 使用泛型

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

  6. 遵循 Java 命名标准。你的第二节课从一个简单的字母开始

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

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

于 2012-12-11T17:58:48.427 回答