java - Java中初始化一个Vector对象,总是不对

标签 java vector initialization

Vector<Pair> Pairs = new Vector<Pair>();
for (int i=0; i!= Size; i++){
        Pair p = new Pair();
        Pairs.add(p);
        System.out.println(i+ " "+ Pairs.get(i).Pair); // first output
    }

     for(int i=0; i!=Pairs.size();i++){
            System.out.println("p"+ i+ " "+ Pairs.get(i).Pair); // second output

    }

我初始化了一个 Pair 类的 vector ,Pair 类会随机生成两个 double 字,然后我尝试按照上面的代码创建一个对的 vector ,两个输出是在 vector 初始化时产生的,一个是在初始化之后产生的 vector 对就完成了。为什么结果不同,输出的第二部分只是重复相同的元素,但它们应该是相同的。 输出为:

0 [-0.9771848260519362, 0.3677255241044455]
1 [-0.453064196696608, 0.10266228385031217]
2 [0.7337531470828571, -0.9331922628126463]
3 [-0.8083142272953654, -0.8923373383889719]
4 [0.19338350002773197, 0.8060945513704245]
5 [0.01753932066182662, 0.4739045577520977]
6 [-0.10060179118660373, 0.5392480353575093]
7 [0.01970274932747107, 0.4450926528405188]
8 [-0.7520808447905654, -0.4791789391059751]
9 [0.4907563252803737, 0.7654845250011753]
p0 [0.4907563252803737, 0.7654845250011753]
p1 [0.4907563252803737, 0.7654845250011753]
p2 [0.4907563252803737, 0.7654845250011753]
p3 [0.4907563252803737, 0.7654845250011753]
p4 [0.4907563252803737, 0.7654845250011753]
p5 [0.4907563252803737, 0.7654845250011753]
p6 [0.4907563252803737, 0.7654845250011753]
p7 [0.4907563252803737, 0.7654845250011753]
p8 [0.4907563252803737, 0.7654845250011753]
p9 [0.4907563252803737, 0.7654845250011753]

最佳答案

第二个循环显示在第一个循环中最后创建的对。您可能将 Pair 字段设为静态,这意味着所有 Pair 实例共享一个唯一的版本。静态字段属于定义它的类。非静态字段属于该类的实例。

阅读Java tutorial about this topic .

关于java - Java中初始化一个Vector对象,总是不对,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14572562/

相关文章:

java - 从 jFreeChart 毫秒到 java.util.Date

c++ - 如何使用 avr-gcc 在 C/C++ 中执行预主初始化?

swift - 从 CoreData 获取并转换

java - 使用 httpUrlConnection 向服务器发送数据

java - 使用 Java Streams 从嵌套映射中提取列表

java - 从重复的字符构造字符串

c++ - 将同一 vector 中的元素push_back安全吗?

c++ - 使用运算符重载添加到列表

C++:与 vector push_back 相关的 Eclipse 代码检查器错误

c# 分配引用