Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/svn/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
有没有一种方法可以使一个整数对象的值不断变化,并被多个名称引用? 我知道C++中可以做一个包装器整数对象的指针,但是在java中包装器类不会反映多个引用之间的变化,因为它只是将值复制到一个新的包装器中。比如: Integer s = 0; Integer j = s; s = 2;_Java_Wrapper - Fatal编程技术网

有没有一种方法可以使一个整数对象的值不断变化,并被多个名称引用? 我知道C++中可以做一个包装器整数对象的指针,但是在java中包装器类不会反映多个引用之间的变化,因为它只是将值复制到一个新的包装器中。比如: Integer s = 0; Integer j = s; s = 2;

有没有一种方法可以使一个整数对象的值不断变化,并被多个名称引用? 我知道C++中可以做一个包装器整数对象的指针,但是在java中包装器类不会反映多个引用之间的变化,因为它只是将值复制到一个新的包装器中。比如: Integer s = 0; Integer j = s; s = 2;,java,wrapper,Java,Wrapper,我的意思是我可能会使用一些类或数据结构,但我担心它会占用很多空间,因为会有很多这样的对象。关于一个对象的节省空间实现的任何想法,该对象有一个动态整数,该整数由我的程序中的各种名称引用。我应该为它的存储实现一个类似结构(c++)的类吗 您需要理解为什么您提供的代码没有按照您的想法执行 Integer s = 0; Integer j = s; s = 2; 同: Integer s = Integer.valueOf(0); Integer j = s; s = Integer.valueOf(

我的意思是我可能会使用一些类或数据结构,但我担心它会占用很多空间,因为会有很多这样的对象。关于一个对象的节省空间实现的任何想法,该对象有一个动态整数,该整数由我的程序中的各种名称引用。我应该为它的存储实现一个类似结构(c++)的类吗

您需要理解为什么您提供的代码没有按照您的想法执行

Integer s = 0;
Integer j = s;
s = 2;
同:

Integer s = Integer.valueOf(0);
Integer j = s;
s = Integer.valueOf(2);
您没有改变
s
的值,而是将其指向了另一个对象

有没有一种方法可以使整型对象的值不断变化

否。
整数
是不可变的

被多个名称引用的


与上述情况无关。

正如其他人所指出的,
Integer
类是不可变的。Apache Commons Lang库中的类将执行您想要的操作:

    MutableInt s = new MutableInt(0);
    MutableInt j = s;
    s.setValue(5);

    System.out.println(s.intValue()); // 5
    System.out.println(j.intValue()); // 5

我要问的第一个问题是,为什么您首先要这样做。而不是
Integer
。在Java中,
Integer
类是不可变的。不过,您可以非常轻松地创建自己的
MyInt
类。它允许我在树上的树节点的数据结构中具有最高值的引用。否则,如果较高,我必须更改其上方每个节点上的Highvalue int。如果这样做,并且“Highvalue”是一个键,则
树将变得未排序且无用。您可以考虑使用静态变量。。