Java - 如何在没有别名的情况下返回方法多维数组 [英] Java - how to return in a method multidimensional array without aliasing

查看:59
本文介绍了Java - 如何在没有别名的情况下返回方法多维数组的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我知道数组是对象,在 java 中对象是通过引用传输的,这可能会导致别名,因此应该以这种形式返回对象,以免导致别名:

I'm aware that arrays are objects and in java objects are transfered by reference which could cause aliasing so objects should be returned with in this form to not cause aliasing:

return new (object(parameters));

return new (object(parameters));

所以这就是我试图对多维数组做的事情,但是由于某种原因,编译器说我有一个错误:缺少数组维度".

So this is what I'm trying to do with multidimensional arrays, however for some reason compiler says I have an error : "array dimension missing".

public int[][] Testing(int[][]arr)
    {
        int[][]newArr=new int[arr.length][arr[0].length];
        for(int i=0;i<arr.length;i++)
        {
            for(int j=0;j<arr[0].length;j++)
            {
                newArr[i][j]=arr[i][arr[0].length-1-j];
            }
            return new int[][]newArr;  
        }      
    }

谁能告诉我如何在方法中返回一个没有别名的多维数组?

Could anyone tell me how to return in a method an multidimensional array without aliasing?

谢谢.

推荐答案

由于您是在方法中创建数组,因此在这种情况下不存在别名的风险.没有其他人可以获得对您的数组的引用.

Since you are creating your array inside your method, there is no risk for aliasing in this scenario. Noone else can get a reference to your array.

一个简单的

return newArr;

会工作得很好.

这篇关于Java - 如何在没有别名的情况下返回方法多维数组的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆