What is wrong with this code I\'m getting wrong output. I don\'t know what\'s wrong, I hope you could help me:
public class Main{
public static void main(Strin
data
is an array of int
s. You should use Arrays#toString(), which is implemented this way:
3860 public static String toString(int[] a) { {
3861 if (a == null)
3862 return "null";
3863 int iMax = a.length - 1;
3864 if (iMax == -1)
3865 return "[]";
3866
3867 StringBuilder b = new StringBuilder();
3868 b.append('[');
3869 for (int i = 0; ; i++) {
3870 b.append(a[i]);
3871 if (i == iMax)
3872 return b.append(']').toString();
3873 b.append(", ");
3874 }
3875 }
Make sure that you understand it, it will help you to understand arrays.
You can loop on the array and manually print it:
for(int i: data) {
System.out.println(i + " ");
}
This way you have control on which values to print, e.g. even values:
for(int i: data) {
if(i % 2 == 0) {
System.out.println(i + " ");
}
}
Regarding the output you are getting, this is the explanation about it:
In Java, each object has toString() method, the default is displaying the class name representation, then adding @
and then the hashcode.
The output is completely fine. The arrays don't override toString()
method, so it invokes the Object#toString() method, which generates that kind of representation. The output is of the form:
getClass().getName() + '@' + Integer.toHexString(hashCode())
For arrays, the Class#getName() method uses some encoding for different element type to generate unique class name. The encoding rule is specified in the documentation.
To get the human readable representation, you can use Arrays#toString() method:
System.out.println("numbers are"+ Arrays.toString(data));
The toString() for arrays is broken. You need
import java.util.Arrays;
System.out.println("numbers are" + Arrays.toString(data));
The same applies for Arrays.equals(), Arrays.hashCode(). The Array, Arrays, ArrayUtils classes add functionality you might like arrays to have.
http://docs.oracle.com/javase/7/docs/api/java/util/Arrays.html
http://docs.oracle.com/javase/7/docs/api/java/lang/reflect/Array.html
http://docs.oracle.com/javase/7/docs/api/java/sql/Array.html
http://commons.apache.org/proper/commons-lang/javadocs/api-3.1/org/apache/commons/lang3/ArrayUtils.html
However, you may find that you really want ArrayList instead.