交换原语的Java方法

标签 java swap

如果没有可以通过引用传递的方法,我如何在 java 中创建交换函数?谁能给我一个代码?

swap(int a, int b)
{
     int temp = a;
     a = b;
     b = temp;
}

但由于 java 是按值传递参数,因此更改不会反射(reflect)回来。

最佳答案

我认为这是最接近简单交换的方法,但它没有直接的使用模式:

int swap(int a, int b) {  // usage: y = swap(x, x=y);
   return a;
}

y = swap(x, x=y);

它依赖于 x 将在 y 分配给 x 之前传递到 swap 的事实,然后x 返回并分配给 y

您可以使其通用并交换任意数量的相同类型的对象:

<T> T swap(T... args) {   // usage: z = swap(a, a=b, b=c, ... y=z);
    return args[0];
}

c = swap(a, a=b, b=c)

关于交换原语的Java方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2393906/

相关文章:

java - 如何将 ArrayList 中的元素与另一个 ArrayList 交换?

datetime - C# DateTime.TryParse 日期年份值交换。 2月30日

javascript - 在 JavaScript 中交换两个对象

java - Java中策略模式的简洁表达

c - 在函数参数中使用 void 指针交换两个结构体和两个 int

java - Spring @Transactional 到底如何工作?

java - Jsoup - 如何找出元素大小

jquery - 使用 Jquery 交换表的行

java - 从每行中删除特定文本

java - Weblogic 托管服务器未正确记录错误