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