gpt4 book ai didi

java - 如何在Java方法中交换两个int的值?

转载 作者:行者123 更新时间:2023-12-02 04:34:56 27 4
gpt4 key购买 nike

在 Java 中,基本数据类型参数似乎会按值传递到方法中。但是如果我想交换两个整数的值怎么办?

public static void main(String[] args){
int a = 1;
int b = 2;
swapvalue(a,b);
System.out.println(a);
System.out.println(b);
}

public static void swapValue(int a, int b){
int c = a;
a = b;
b = c;
}

例如,上面的代码旨在交换a和b的值。在 C++ 中,我可以传递指针或对它们的引用,但我不知道如何在没有指针的情况下在 Java 中执行此操作。我怎样才能做到呢?

最佳答案

您不能通过将它们传递给方法来交换它们。

您可以做的最接近的事情是将 int[] 传递给该方法,并交换数组的元素:

public static void main(String[] args){
int[] arr = {1,2};
swapValues(arr);
System.out.println(arr[0]);
System.out.println(arr[1]);
}

public static void swapValues(int[] arr){
int c = arr[0];
arr[0] = arr[1];
arr[1] = c;
}

另一种选择是用一些可变类包装它们:

public class IntHolder
{
private int value;
...
}

public static void main(String[] args){
IntHolder a = new IntHolder(1);
IntHolder b = new IntHolder(2);
swapValue(a,b);
System.out.println(a.getInt());
System.out.println(b.getInt());
}

public static void swapValue(IntHolder a, IntHolder b){
int c = a.getInt();
a.setInt(b.getInt());
b.setInt(c);
}

关于java - 如何在Java方法中交换两个int的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30952004/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com