• 一杯果汁和一杯水的故事


    不知道各位小伙伴们有没有听过这样一个故事,讲的是一杯果汁和一杯水如何在不改变两杯液体的情况下,将两杯液体互换。在你听过的那个版本中,或许主角不是果汁,而是可乐。

    其实,这个小故事主要是为了说明一个编程方面的小知识,两变量交换值。之前,我以为故事的发展是这样的,取来一只空杯子(新建一个同类型的变量),然后将二者互换。直到最近,机缘巧合之下,我才发现原来还有其他两种方法能达到交换两变量的目的,而且不需要新建第三个变量。

    方法一:异或交换

    public class Pra {
        public static void main(String[] args) {
            int i = 2;
            int j = 6;
            j = i ^ j;
            i = i ^ j;
            j = i ^ j;
            System.out.println(i);
            System.out.println(j);
        }
    }

    当一个数异或两次相同的数的时候,比如 i ^ j ^ j,那么结果为这个数本身。

    方法二:加减交换

    public class Pra {
        public static void main(String[] args) {
            int i = 2;
            int j = 6;
            i = i + j;
            j = i - j;
            i = i - j;
            System.out.println(i);
            System.out.println(j);
        }
    }

    两个还挺有趣的小技巧,各位小伙伴考不考虑学一波?

  • 相关阅读:
    Java实现连接FTP服务并传递文件
    消息队列(MQ)入门-activemq,rocketmq代码级别
    js分页功能实现
    记录几个遇到的问题和解决方法
    oracle 日志归档设置
    打印系统时间
    linux 定时任务
    linux 安装jdk
    db2 命令
    二维码、条形码扫描——使用Google ZXing
  • 原文地址:https://www.cnblogs.com/wxdmw/p/13295128.html
Copyright © 2020-2023  润新知