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

  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. mybaties中在xml中map添加一个list中的判断

    if (uIds.size() > 0) { map.put("uIds", uIds); } else { map.put("uIds", null); ...

  2. Spring:No bean named 'beanScope' is defined

    初学Spring,“No bean named 'beanScope' is defined”这个问题困扰了我好几个小时,查资料无果后,重写好几遍代码后发现问题居然是配置文件不能放在包里...要放在s ...

  3. 第一波实习的前端笔记(2)——js.md

    1.如何解决移动端点透问题? $('xx').on('touchend', function(event){ event.preventDefault(); }) 但是,存在滑动页面会触发问题.期待更 ...

  4. (http://fonts.googleapis.com/css?)打开很慢解决方案

    把fonts.googleapis.com替换为fonts.useso.com即可

  5. 服务器响应头隐藏X-power-by

    服务器响应头隐藏X-power-by 这个不是Apache或者Nginx输出的,而是由语言解析器或者应用程序框架输出的. 这个值的意义用于告知网站是用何种语言或框架编写的.例如: PHP标准输出是:X ...

  6. Python自动化 【第一篇】:Python简介和入门

    Python简介: 一.什么是python Python是一门动态解释性的强类型定义语言. pythonde 特点:“优雅”.“明确”.“简单”. 二.Python由来 python的创始人为吉多·范 ...

  7. OpenSSL命令系列

    1.1 ssl命令系列前言 openssl命令的格式是"openssl command command-options args",command部分有很多种命令,这些命令需要依赖 ...

  8. Hibernate框架概念

    1.Hibernate是ORM框架,完成对象的持久化操作. 2.允许开发者采用面向对象的方式来操作数据库. 3.安装Hibernate的插件到Eclipse中来自动生成配置文件. 4.Hibernat ...

  9. sqlserver无法连接

    以下是我的检查信息及结果:1.telnet 192.168.1.100 1433 通过  telnet 116.3.15.198 1433 不通,提示“……无法打开连接,连接失败”的错误.2.通过端口 ...

  10. jqeury datatable

    1.自定义列信息    "aoColumnDefs":[                               {                               ...