2016-04-16 3 views
0

Я изучаю Java по учебнику на YouTube. Я немного изменил код, и результат был странным. Вот мой код:Печать массива в Java

import java.util.Random; 

public class array { 

    public static void main(String args[]){ 
     int bucky[]={1,2,3,4,5}; 
     change(bucky); 

     System.out.println(bucky); 
    } 

    public static void change(int x[]){ 
     // change the array 
     for(int counter=0;counter<x.length;counter++) 
      x[counter]+=5; 
    } 
} 

Но результат был [[email protected]

Код на учебнике:

import java.util.Random; 

public class array { 

    public static void main(String args[]){ 
     int bucky[]={1,2,3,4,5}; 
     change(bucky); 
     for(int y:bucky) 
     System.out.println(y);// here! 
    } 

    // change the array 
    public static void change(int x[]){ 
     for(int counter=0;counter<x.length;counter++) 
      x[counter]+=5; 
    } 
} 

ответ

1

Помните, что Баки является и объектом, даже если это массив из примитивов ints, поэтому вам нужно использовать правильный способ печати этого объекта ... в вашем случае правильный способ печати массива

System.out.println(Arrays.toString(bucky)); 

вместо

System.out.println(bucky); 

потому что System.out.println(bucky); является вызовом toString() метод суперкласса Object который просто возвращает имя класса и hashCode() в шестнадцатеричном формате.

0

Для печати массива, используйте:

System.out.println(Arrays.toString(array)); 

Так что в вашем случае array будет заменен bucky.

Смежные вопросы