题目
我希望能够将带有两个元素的数组传递给我的swapValues函数来交换值。然而,似乎价值没有变化。
你能弄清楚这里有什么问题吗?
class Swapper{
public Object[] arguments;
public Swapper(final Object[] args){
arguments=args;
}
public void swapValues() {
Object[] args = new Object[]{arguments[0],arguments[1]};
Object temp = args[0];
args[0] = args[1];
args[1] = temp;
}
}
测试用例
import org.junit.Test;
import static org.junit.Assert.assertEquals;
import org.junit.runners.JUnit4;
public class SolutionTest {
@Test
public void testSomething() {
Integer[] args = new Integer[]{1,2};
Swapper r= new Swapper(args);
r.swapValues();
assertEquals("Failed swapping numbers",2,r.arguments[0] );
assertEquals("Failed swapping numbers",1,r.arguments[1] );
}
}
解题
class Swapper{
public Object[] arguments;
public Swapper(final Object[] args){
arguments=args;
}
public void swapValues() {
Object[] args ={arguments[1],arguments[0]};
// Object temp = args[0];
// args[0] = args[1];
// args[1] = temp;
arguments=args;
}
}
Other
class Swapper{
public Object[] arguments;
public Swapper(final Object[] args){
arguments=args;
}
public void swapValues() {
Object temp = arguments[0];
arguments[0] = arguments[1];
arguments[1] = temp;
}
}
后记
看看我的方法,确实不怎么样。
网友评论