public class Swap_Numbers {
public static void main(String[] args) {
int numTens[] = {1, 2, 3, 4, 5}; // First array of numbers
int numHundred[] = {100, 200, 300, 400, 500}; //Second Array of Numbers
System.out.println (numTens[3]); // I want my numTens displays numHundred
System.out.println (numHundred[4]); // I want my numHundred displays numTens
}
}
我只是不知道我应该使用什么代码来交换numTens和numHundred的数据而不使用额外的变量..希望有些人可以解释我多么感谢!
答案 0 :(得分:3)
我只是不知道我应该用什么代码来交换numTens和numHundred的数据而不使用额外的变量
基本上你不应该。只需采用临时变量的简单路由:
int[] tmp = numTens;
numTens = numHundred;
numHundred = tmp;
对于int,你可以实际使用算术交换数组中的值而不使用临时变量(不与交换变量所引用的数组相同),但是实际上发现自己处于想要这样做的状态是很奇怪的。示例代码:
import java.util.Arrays;
public class Test {
public static void main(String[] args) {
int[] x = { 1, 2, 3, 4, 5 };
int[] y = { 15, 60, 23, 10, 100 };
swapValues(x, y);
System.out.println("x: " + Arrays.toString(x));
System.out.println("y: " + Arrays.toString(y));
}
static void swapValues(int[] a, int[] b) {
// TODO: Validation
for (int i = 0; i < a.length; i++) {
a[i] += b[i];
b[i] = a[i] - b[i];
a[i] -= b[i];
}
}
}
即使在那里,我也会实际使用临时变量来编写swapValues
,但上面的代码只是为了证明一点......
答案 1 :(得分:2)
为此,我假设两个阵列的大小相同。然后你可以这样做:
for (int i = 0; i < numTens.length; i++)
{
numTens[i] = numTens[i] + numHundred[i]; // statement 1
numHundred[i] = numTens[i] - numHundred[i]; // statement 2
numTens[i] = numTens[i] - numHundred[i]; // statement 3
}
让我们取两个数组的第二个元素
Ten[2] = 3;
Hundred[2] = 300;
-------------------------------------
Ten[2] = 303 // after statement 1
Hundred[2] = 3 // after statement 2
Ten[2] = 300 // after statement 3
-------------------------------------
Ten[2] = 300;
Hundred[2] = 3;
在不使用临时变量的情况下交换值。
答案 2 :(得分:1)
如果要交换数组中的数字,可以执行以下操作:
void swap(int[] arr1, int[] arr2)
{
//if parameters are as bellow
//arr1 = {1, 2, 3, 4, 5};
//arr2 = {10, 20, 30, 40, 50};
if(arr1.length == arr2.length)
{
for(int i =0; i < arr1.length ; i++)
{
arr1[i] = arr1[i] + arr2[i];
arr2[i] = arr1[i] - arr2[i];
arr1[i] = arr1[i] - arr2[i];
}
}
else
{
throw new IllegalArgumentException;
}
}
答案 3 :(得分:0)
int numTens[] = {1, 2, 3, 4, 5}; // First array of numbers
int numHundred[] = {100, 200, 300, 400, 500}; //Second Array of Numbers
for (int i = 0; i < numTens.length; i++) {
numHundred[i] = numTens[i];
numTens[i] = numTens[i]*100;
}
System.out.println (numTens[3]);
System.out.println (numHundred[4]);