注册 登录
编程论坛 JAVA论坛

数组输出乱码,@.....

渐渐鱼 发布于 2018-06-15 20:40, 2312 次点击
程序代码:

import java.util.*;
public class A{
public static void main(String args[]){
int arrays[]= new int[10];

        //用fill方法给数组赋值Array.fill(数组名,fromindex(包括),toindex(不包括),value)
        Arrays.fill(arrays,5);

        Arrays.fill(arrays,1,3,7);//arrays[1],arrays[2]赋值为7

        System.out.println("赋值后数组:");

        System.out.println(arrays);

        //用sort方法排序(默认升序)

        Arrays.sort(arrays);

        System.out.println("排序后数组");

        System.out.println(arrays);

        //判断数组是否相等

        int krrays[]=new int [10];

        Arrays.fill(krrays,9);

        System.out.println(Arrays.equals(arrays,krrays));

        //查找数组元素

        System.out.println("返回数组元素的位置");

        System.out.println(Arrays.binarySearch(arrays,5));
}}
..


运行结果:赋值后数组:
[I@6b143ee9
排序后数组
[I@6b143ee9
false
返回数组元素的位置
4
4 回复
#2
Gband2018-06-15 21:57
arrays储存的是一个int[]类的地址,你让程序输出的是arrays的地址,并非他的元素
#3
疯狂的小a2018-06-16 10:35
程序代码:
import java.util.*;
public class A{
public static void main(String args[]){
int arrays[]= new int[10];

        //用fill方法给数组赋值Array.fill(数组名,fromindex(包括),toindex(不包括),value)
        Arrays.fill(arrays,5);

        Arrays.fill(arrays,1,3,7);//arrays[1],arrays[2]赋值为7

        System.out.println("赋值后数组地址值:");

        System.out.println(arrays);
        
        //打印数组
        for(int i=0;i<arrays.length;i++){
            if(i==0){
                System.out.print("[ "+arrays[i]);
            }else if(i!=0 && i!=arrays.length-1){
                System.out.print(" "+arrays[i]);
            }else{
                System.out.println(" "+arrays[i]+" ]");
            }
        }

        //用sort方法排序(默认升序)

        Arrays.sort(arrays);

        System.out.println("排序后数组地址值");

        System.out.println(arrays);
        
        //打印排序后数组
        for(int i=0;i<arrays.length;i++){
            if(i==0){
                System.out.print("[ "+arrays[i]);
            }else if(i!=0 && i!=arrays.length-1){
                System.out.print(" "+arrays[i]);
            }else{
                System.out.println(" "+arrays[i]+" ]");
            }
        }

        //判断数组是否相等

        int krrays[]=new int [10];

        Arrays.fill(krrays,9);

        System.out.println(Arrays.equals(arrays,krrays));

        //查找数组元素

        System.out.println("返回数组元素的位置");

        System.out.println(Arrays.binarySearch(arrays,5));
}}

只有本站会员才能查看附件,请 登录
可以看出排序后数组在内存中地址值没有改变
#4
渐渐鱼2018-06-16 12:31
回复 2楼 Gband
修改后可以了,谢啦
1