美文网首页
每日一练82——Java交换价值-修复代码(8kyu)

每日一练82——Java交换价值-修复代码(8kyu)

作者: 砾桫_Yvan | 来源:发表于2018-08-26 11:55 被阅读0次

题目

我希望能够将带有两个元素的数组传递给我的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;
  }
}

后记

看看我的方法,确实不怎么样。

相关文章

网友评论

      本文标题:每日一练82——Java交换价值-修复代码(8kyu)

      本文链接:https://www.haomeiwen.com/subject/azxoiftx.html