For Programmers: Free Programming Magazines  


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
Sponsored Links







Also available: Server administration forum archive | Web Design forum archive | Software forum archive | Hardware reviews archive

Copyright 2008 codecomments.com