I have an array of integers, which I set via a recursive function.
Obviously, I don't want to set them more than once, so I want to test
if, for instance myVar[10] == null. But of course, that doesn't work,
since integer's are not null before they've been given a value.
How can I test if a value has been set or not?
...
> How can I test if a value has been set or not?
<sscce>
class NullInteger {
public static void main(String[] args) {
Integer[] allInt = new Integer[10];
for (int ii=0; ii< allInt.length; ii++) {
System.out.println(
"index " + ii + " \tvalue: " + allInt[ii] );
}
for (int ii=0; ii< allInt.length; ii+=3) {
allInt[ii] = new Integer(ii+1);
}
for (int ii=0; ii< allInt.length; ii++) {
System.out.println(
"index " + ii + " \tvalue: " + (allInt[ii]==null) );
}
}
}
</sscce>
HTH
Andrew T.
> I have an array of integers, which I set via a recursive function.
> Obviously, I don't want to set them more than once, so I want to test
> if, for instance myVar[10] == null. But of course, that doesn't work,
> since integer's are not null before they've been given a value.
>
> How can I test if a value has been set or not?
1. If the integers have an out-of-bound value, initialize them to that
first. For example, if the values you set are all non-negative,
initialize to -1. If they must be positive, just check for myVar[10]==0.
2. Use Integer and check for null, As Andrew suggested.
3. Use a separate boolean array, the same length, and set the boolean at
an index to true when you set the int with the same index.
4. Structure your logic so that you only attempt to set each element once.
Patricia
Thomas Weidenfeller - 26 Oct 2006 09:27 GMT
> 3. Use a separate boolean array, the same length, and set the boolean at
> an index to true when you set the int with the same index.
Or use a bit set to the same effect.
> 4. Structure your logic so that you only attempt to set each element once.
5. Don't use an integer array - assuming your algorithm produces a
sparse vector. If this is the case consider a map with the index
becoming the key.
/Thomas

Signature
The comp.lang.java.gui FAQ:
http://gd.tuwien.ac.at/faqs/faqs-hierarchy/comp/comp.lang.java.gui/
ftp://ftp.cs.uu.nl/pub/NEWS.ANSWERS/computer-lang/java/gui/faq