【问题标题】:Swap and reverse two methods交换和反转两种方法
【发布时间】:2015-04-27 18:46:38
【问题描述】:

使用两个方法创建一个名为 Flip 的类:

public float[] swap(float[] pair)

swap 方法应该采用一个包含两个浮点数的数组。它应该在交换位置返回一个包含相同两个数字的数组。例如,如果我这样调用你的方法交换:

float[] x = { 3.14, 2.71 }

float[] y = swap(x);

Ln.p(y[0] + “, “ + y[1]);

我的方法调用你的交换方法应该打印出2.71, 3.14

public double[] reverse(double[] reverse, int length)

reverse 方法应采用包含任意数量的双精度数(指定长度)的数组。它应该以相反的顺序返回一个包含所有这些数字的数组。您不必使用 for 循环,但这是编写此方法的最简单方法。如果我这样调用你的方法:

double[] a = { 0.33, 0.66, 0.25, 0.5, 0.75 }

double[] b = reverse(a, 5);

for (int i = 0; i < 5; i++) Ln.p(b[i] + “ “);

我的方法调用你的反向方法应该打印出0.75 0.5 0.25 0.66 0.33

---所以我有第一个用于浮动,但我正在寻找第二部分的起点或方向。

import java.util.Scanner;

public class Flip 
enter code here{


public float[] swap(float[] pair) 
{
    float x = 0;
    float y = 0;

    int xi = Float.floatToIntBits(x);
    int yi = Float.floatToIntBits(y);
    xi = yi - xi;
    yi = yi - xi;
    xi = xi + yi;
    x = Float.intBitsToFloat(xi);
    y = Float.intBitsToFloat(yi);

    System.out.printf("My method calling your swap method is...." +x,y); 

    return null;
}

public double[] reverse(double[] reverse, int lenght)
{
    double[] a = { 0.33, 0.66, 0.25, 0.5, 0.75 };

    double[] b = reverse(a, 5);

    for (int i = 0; i < 5; i++) Ln.p(b[i] + “ “);

    return reverse;

}

}

【问题讨论】:

  • 我几乎 100% 确定您不应该在 reverse 时调用 reverse。

标签: java methods reverse swap


【解决方案1】:

要交换到大小为 2 的数组中的元素,我会这样做:

float[] array = {2.7, 3.2};
float x = array[1];
array[1] = array[0];
array[0] = x;

也不要忘记实际返回交换后的数组!

要反转整个列表或数组,我建议在 Collection 中使用 reverse() 方法。看一眼 http://www.tutorialspoint.com/java/util/collections_reverse.htm

如果您想使用自己的方法来执行此操作,请尝试将输入数组中的值复制到具有相同大小但相反的输出数组中:

float[] input = {1.0f, 2.0f, 3.0f, 4.0f, 5.0f};
float[] out = new float[input.length];
for(int i=0;i<input.length; i++) {
  out[i]=input[input.length-i-1];
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-05-19
    • 2020-09-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多