如何在java中的代码中交换Character数组

时间:2015-01-02 14:47:52

标签: java arrays swap

最近,我一直在学习java,并且正在编码找到具有与给定输入(字符串输入)相同的数字的最大数字的问题。问题需要交换功能。下面是代码。

交换(C,5,4); // c是我的字符数组.5和4是要替换字符的整数

public static void swap(char demo[],int x,int y) 
/*the function defined in the same class where function is declared */
    {
        char temp=[x];
        demo[x]=demo[y];
        demo[y]=temp;
    }

我的查询:

1)我知道在java指针中不存在与C / C ++不同的事实,但是我怀疑为什么我的原始数组c中的4和5处的字符在C / C ++指针中被交换了正在帮助修改原始数组。我无法理解java如何处理它?<​​/ p>

2)就像在C / C ++中一样,当你从函数定义返回时,临时变量会被删除。这不是java的情况,因为它是用c / c ++编写的,我上面的代码不会&# 39; t交换了原始数组,直到我发送了参考文献。

我很天真,在这里搜索过但却无法找到答案。如果我对此有所了解,我将不胜感激。

1 个答案:

答案 0 :(得分:0)

demo是引用类型变量。它包含引用的值。

方法的调用者和方法本身都引用了char[]实例。该方法使用该引用来定位对象并对其进行更改,即。交换两个元素。

当方法返回时,调用者仍然具有对同一对象的引用,因此可以看到该对象内的更改。