java中两个值互换
两个值互换有以下三种方式:
- 使用临时变量(此种方法便于理解)
x = 10;
y = 20;
//begin
int temp = x;
x = y;
y = temp;
//end;
//此时x = 20; y = 10; - 利用加减来实现(此种方法只适应于数值比较小的情况,如果数值较大,会超界)
x = 10;
y = 20;
//begin
x = x + y ;
y = x - y;
x = x - y;
//end;
//此时x = 20; y = 10; - 利用位运算实现(不用考虑数值大小问题)
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中两个值互换的更多相关文章
- 变量赋值理解--Pyton中让两个值互换的方法
#Pyton中让两个值互换的方法 #方法一:可以理解为相当于是同时赋值 a = 5 b = 4 a,b = b,a print(a,b) #方法二:可以理解为拿箱子过程 c = 10 d = 20 e ...
- [转] 有关java中两个整数的交换问题
转载申明:本文主要是用于自己学习使用,为了完善自己的只是框架,没有任何的商业目的. 原文来源:有关Java中两个整数的交换问题 如果侵权,麻烦告之,立刻删除. 在程序开发的过程,要交换两个变量的内容, ...
- Java中到底是值传递还是引用传递?
Java中到底是值传递还是引用传递? 我们先回顾一下基本概念 实参和形参 参数在编程语言中是执行程序需要的数据,这个数据一般保存在变量中.在Java中定义一个方法时,可以定义一些参数, 举个例子: p ...
- JAVA 中两种判断输入的是否是数字的方法__正则化_
JAVA 中两种判断输入的是否是数字的方法 package t0806; import java.io.*; import java.util.regex.*; public class zhengz ...
- Java中两个List对比的算法
Java中两个List对比的算法: // 测试数据 // tdcsDdt.add("Z"); // tdcsDdt.add("B"); // tdcsDdt ...
- java中,null值可以被强制转换为任何类型
java中,null值可以被强制转换为任何类型
- Java中真的只有值传递么?
Java中真的只有值传递么? (本文非引战或diss,只是说出自己的理解,欢迎摆正心态观看或探讨) 回顾值传递和引用传递 关于Java是值传递还是引用传递,网上有不一样的说法. 1.基本类型或基本类型 ...
- Java中两个或多个byte数组合并及int类型转数组
Java中两个或多个byte数组合并及int类型转数组 // 用list好处是可以未知多个? public static byte[] test(List<byte[]> values) ...
- JAVA中两个int类型的变量在不借助第三个变量的情况下完成值的互换
在面试中被问到这个问题,想到两种解决方式,在此分享一下. 第一种,使用简单的数学运算达到目标(但是面试官往往会问你还有没有其他方式): public static void main(String[] ...
随机推荐
- mybaties中在xml中map添加一个list中的判断
if (uIds.size() > 0) { map.put("uIds", uIds); } else { map.put("uIds", null); ...
- Spring:No bean named 'beanScope' is defined
初学Spring,“No bean named 'beanScope' is defined”这个问题困扰了我好几个小时,查资料无果后,重写好几遍代码后发现问题居然是配置文件不能放在包里...要放在s ...
- 第一波实习的前端笔记(2)——js.md
1.如何解决移动端点透问题? $('xx').on('touchend', function(event){ event.preventDefault(); }) 但是,存在滑动页面会触发问题.期待更 ...
- (http://fonts.googleapis.com/css?)打开很慢解决方案
把fonts.googleapis.com替换为fonts.useso.com即可
- 服务器响应头隐藏X-power-by
服务器响应头隐藏X-power-by 这个不是Apache或者Nginx输出的,而是由语言解析器或者应用程序框架输出的. 这个值的意义用于告知网站是用何种语言或框架编写的.例如: PHP标准输出是:X ...
- Python自动化 【第一篇】:Python简介和入门
Python简介: 一.什么是python Python是一门动态解释性的强类型定义语言. pythonde 特点:“优雅”.“明确”.“简单”. 二.Python由来 python的创始人为吉多·范 ...
- OpenSSL命令系列
1.1 ssl命令系列前言 openssl命令的格式是"openssl command command-options args",command部分有很多种命令,这些命令需要依赖 ...
- Hibernate框架概念
1.Hibernate是ORM框架,完成对象的持久化操作. 2.允许开发者采用面向对象的方式来操作数据库. 3.安装Hibernate的插件到Eclipse中来自动生成配置文件. 4.Hibernat ...
- sqlserver无法连接
以下是我的检查信息及结果:1.telnet 192.168.1.100 1433 通过 telnet 116.3.15.198 1433 不通,提示“……无法打开连接,连接失败”的错误.2.通过端口 ...
- jqeury datatable
1.自定义列信息 "aoColumnDefs":[ { ...