Home > Archive > Java Help > October 2006 > Test If Int Has Not Been Set
You are viewing an archived Text-only version of the thread.
To view this thread in it's original format and/or if you want to reply to
this thread please [click here]
| Author |
Test If Int Has Not Been Set
|
|
| dimo414 2006-10-30, 7:32 pm |
| 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?
| |
| Andrew Thompson 2006-10-30, 7:32 pm |
| dimo414 wrote:
....
> 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.
| |
| Patricia Shanahan 2006-10-30, 7:32 pm |
| dimo414 wrote:
> 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 2006-10-30, 7:32 pm |
| Patricia Shanahan wrote:
> 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
--
The comp.lang.java.gui FAQ:
http://gd.tuwien.ac.at/faqs/faqs-hi....lang.java.gui/
ftp://ftp.cs.uu.nl/pub/NEWS.ANSWERS...ng/java/gui/faq
|
|
|
|
|