两个值互换有以下三种方式:

  1. 使用临时变量(此种方法便于理解)

     x = 10;
    y = 20;
    //begin
    int temp = x;
    x = y;
    y = temp;
    //end;
    //此时x = 20; y = 10;
  2. 利用加减来实现(此种方法只适应于数值比较小的情况,如果数值较大,会超界)
     x = 10;
    y = 20;
    //begin
    x = x + y ;
    y = x - y;
    x = x - y;
    //end;
    //此时x = 20; y = 10;
  3. 利用位运算实现(不用考虑数值大小问题)
     x = 10;
    y = 20;
    //begin
    x = x ^ y;
    y = x ^ y;
    x = x ^ y;
    //end;
    //此时x = 20; y = 10;

但是java中没有指针的概念,如果要把两值互换封装起来的话,那么形参只能是传入对象,不能直接传入数值,因为传入数值不能改变原来的值;也没有C#中的ref关键字。

  • 直接在程序中写
  • 函数调用,这种方法可能比较麻烦,没有直接用上面的方便,但是也是一种思路;
     package com.test;
    public class test1 {
    public static void main(String[] args) {
    int x = 10;
    int y = 20;
    int[] tempArr = swap(x,y);//定义数组接收返回值
    x = tempArr[0];
    y = tempArr[1];
    System.out.println("x="+x+";y="+y);
    }
    public static int[] swap(int x, int y)//定义函数换值,返回数组
    {
    int[] arr = new int [2];
    x = x ^ y;
    y = x ^ y;
    x = x ^ y;
    arr[0] = x;
    arr[1] = y;
    return arr; }
    }

java中两个值互换的更多相关文章

  1. 变量赋值理解--Pyton中让两个值互换的方法

    #Pyton中让两个值互换的方法 #方法一:可以理解为相当于是同时赋值 a = 5 b = 4 a,b = b,a print(a,b) #方法二:可以理解为拿箱子过程 c = 10 d = 20 e ...

  2. [转] 有关java中两个整数的交换问题

    转载申明:本文主要是用于自己学习使用,为了完善自己的只是框架,没有任何的商业目的. 原文来源:有关Java中两个整数的交换问题 如果侵权,麻烦告之,立刻删除. 在程序开发的过程,要交换两个变量的内容, ...

  3. Java中到底是值传递还是引用传递?

    Java中到底是值传递还是引用传递? 我们先回顾一下基本概念 实参和形参 参数在编程语言中是执行程序需要的数据,这个数据一般保存在变量中.在Java中定义一个方法时,可以定义一些参数, 举个例子: p ...

  4. JAVA 中两种判断输入的是否是数字的方法__正则化_

    JAVA 中两种判断输入的是否是数字的方法 package t0806; import java.io.*; import java.util.regex.*; public class zhengz ...

  5. Java中两个List对比的算法

    Java中两个List对比的算法:   // 测试数据 // tdcsDdt.add("Z"); // tdcsDdt.add("B"); // tdcsDdt ...

  6. java中,null值可以被强制转换为任何类型

    java中,null值可以被强制转换为任何类型

  7. Java中真的只有值传递么?

    Java中真的只有值传递么? (本文非引战或diss,只是说出自己的理解,欢迎摆正心态观看或探讨) 回顾值传递和引用传递 关于Java是值传递还是引用传递,网上有不一样的说法. 1.基本类型或基本类型 ...

  8. Java中两个或多个byte数组合并及int类型转数组

    Java中两个或多个byte数组合并及int类型转数组 // 用list好处是可以未知多个? public static byte[] test(List<byte[]> values) ...

  9. JAVA中两个int类型的变量在不借助第三个变量的情况下完成值的互换

    在面试中被问到这个问题,想到两种解决方式,在此分享一下. 第一种,使用简单的数学运算达到目标(但是面试官往往会问你还有没有其他方式): public static void main(String[] ...

随机推荐

  1. iOS 中如何将View设置为圆角的矩形?

    今天刚好需要添加一个圆角的view. 必须先导入头文件. #import <QuartzCore/QuartzCore.h> bgView.layer.cornerRadius = cor ...

  2. 关于SoCFPGA 编译问答

    1.在Qsys里面添加了一个新的组件(不是hps里面的东西),挂在Avalon总线上,如添加了一个新ADC组件,是否需要重新编译dtb. 答:  不需要. 2.修改了相关Qsys里面的东西,是否也需要 ...

  3. Web服务器禁止range请求

    range: 请求一般是多线程下载的客户端程序使用 在httpd.conf中增加下面的配置,可以禁止range请求: RewriteEngine onRewriteCond %{HTTP:Range} ...

  4. 剑指Offer:面试题24——二叉搜索树的后序遍历序列(java实现)

    问题描述: 输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果.如果是则返回true,否则返回false.假设输入的数组的任意两个数字都互不相同. 思路: 1.首先后序遍历的结果是[(左子 ...

  5. BVT & BAT & SVT

    1. BVT(Build Verification Test) a. BVT概念 Build Verification test is a set of tests run on every new ...

  6. springMVC下载FTP上的文件

    springMVC下载FTP上的文件 今天没时间写.先上传 一个工具类 工具类 package com.utils; import java.io.File; import java.io.FileO ...

  7. js事件委托,可以使新添加的元素具有事件(event运用)

    miaov视频教程  http://study.163.com/course/courseMain.htm?courseId=231002 <!DOCTYPE html PUBLIC " ...

  8. ftp服务器远程拷贝命令

    xiamense@xiamense-testserver:~$ ftp 218.5.82.40 输入账户密码 get 远程文件路径 本机服务器路径get pa20160927.xml /home/xi ...

  9. Python自动化 【第九篇】:Python基础-线程、进程及python GIL全局解释器锁

    本节内容: 进程与线程区别 线程 a)  语法 b)  join c)  线程锁之Lock\Rlock\信号量 d)  将线程变为守护进程 e)  Event事件 f)   queue队列 g)  生 ...

  10. Lock锁的使用示例

    Lock锁是java5用来代替synchronized的一种面向对象的锁的方案 public class LockDemo { /** * Lock是用来替换synchronized, 优点是Lock ...