当前位置: 首页 > 面试题库 >

交换原语的Java方法

程皓轩
2023-03-14
问题内容

如果没有可以通过引用传递的方法,如何在java中使我的交换函数有效?有人可以给我一个密码吗?

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

但是,由于Java通过值传递参数,因此更改不会被反映回来。


问题答案:

你无法创建方法交换,因此在调用swap(x,y)x和y之后将被交换。你可以通过交换可变内容的内容¹来创建此类方法,但这不会更改其对象标识,因此你无法为此定义通用方法。

但是,你可以编写一种方法来交换数组或列表中的两个项目(如果需要的话)。

¹例如,你可以创建一个包含两个列表的交换方法,执行该方法后,列表x将具有列表y的先前内容,列表y将具有列表x的先前内容。



 类似资料:
  • 我试图了解Java原语和包装器是如何工作的。让我们考虑以下示例。 由于整数是不可变的和非原语,语句将编译为以下内容 这将创建大约10000个整数对象(每次调用新)和将整数拆箱为int的成本。 我说的对吗?

  • 问题内容: Java中比较和交换的语义是什么?即,公正的比较和交换方法是保证不同线程之间对原子整数实例的特定内存位置的有序访问,还是保证对内存中所有位置的有序访问,即,它的行为就像是易失的(内存围栏)。 从文档: 原子地读取和有条件地写入变量,但不会在排序之前创建任何事件,因此,对于除的目标以外的任何变量的先前或后续读取和写入不提供任何保证。 以及所有其他读取和更新操作(例如,具有读取和写入易失性

  • 本文向大家介绍Java 交换两个变量的数值实现方法,包括了Java 交换两个变量的数值实现方法的使用技巧和注意事项,需要的朋友参考一下 一、参数传递方法 为解决标题问题,首先介绍参数传递方法。目前各类程序设计语言的参数传递方法主要有三种: 1.按值传递 2.按引用传递 3.按指针传递 其中按值传递表示方法(函数)接收的是调用者提供的变量的拷贝,不改变参数的值;按引用传递表示方法(函数)接收的调用者

  • 问题内容: 问题是:编写一个交换两个变量的方法。这两个变量应该是原语。它不需要是通用的,例如两个变量。有办法吗? 问题答案: 如果不使用数组或对象,不可以,无法在方法中进行操作。

  • 要么我一整天都精疲力尽了,不能正常思考,要么这是不可能的,但我想一个原子,它引用一个无限延迟的seq,并使用当前seq的 我的程序挂起有明显的原因,因为在交换前尝试检查以前和新的seq相等。相等性检查基本上从不终止 以前,我的惰性seq是在中工作的,但是在REPL上,由于实现了返回的seq,我的REPL被挂起 无论如何,使用仍然失败

  • Java中是否有本地方法在中进行字符交换。我是说,我每次都需要写一个这样的函数,很无聊: