java中的swap什么意思 java swap 方法
大家好,今天小编来为大家解答java中的swap什么意思这个问题,java swap 方法很多人还不知道,现在让我们一起来看看吧!
java工作原理
Java工作原理
由四方面组成:
(1)Java编程语言
(2)Java类文件格式
(3)Java虚拟机
(4)Java应用程序接口
当编辑并运行一个Java程序时,需要同时涉及到这四种方面。使用文字编辑软件(例如记事本、写字板、UltraEdit等)或集成开发环境(Eclipse、MyEclipse等)在Java源文件中定义不同的类,通过调用类(这些类实现了Java API)中的方法来访问资源系统,把源文件编译生成一种二进制中间码,存储在class文件中,然后再通过运行与操作系统平台环境相对应的Java虚拟机来运行class文件,执行编译产生的字节码,调用class文件中实现的方法来满足程序的Java API调用。
java程序为什么一定要写swap(x,y)
swap(x,y)是一个函数,字面意思是交换传入的两个参数的值。
函数内部会将变量x和变量y的值交换,并且打印出交换后的变量值,这里打印的是x=20,y=10
然而这样并不能真正把main函数里面定义的变量x,y的值互相交换,因为在这里传递给swap()函数的变量只是x,y的一个拷贝,然后再在函数内部对这个副本的值进行交换是不会对原来的x,y的值造成影响。
所以main函数里最后会打印出x=10,y=20
如果想要真正实现交换全部变量x,y的值,只需要把swap函数定义成static void swap(Integer x,Integer y),函数内部再对其进行交换就可以了。这里用到了Java中的包装数据类型,也称原始数据类型,用对象来接受传递过来的数据,然后对象就会指向全局变量x,y的内存地址,这个作用相当于C语言中的指针。这是让swap函数起作用的关键原理所在。
并不是所有的Java程序中都会用到这个函数,根据业务需要进行保留或删除吧。
为什么java里面的map没有swap方法,而c++有
语言的功能由设计者按它的意愿来做的,JAVA的作者可能认为map不需要swap而C++作者认为需要,作为程序员研究这个没有任何意义的(除非你要做自己的编译器),程序员只要用语言已有的功能实现自己的需求,对java,若你要对map的两项进行交换,可以自己用简单的代码来实现
对一个map
m;要交换两个key
k1,k2的内容,以下代码就可以
Object
t=m.get(k1);
m.put(k1,m.get(k2));
m.put(k2,tmp);
java swap 方法
java swap方法:主要就是交换,在这里首先了解数据存储空间下面,有几个例子
public static void swap(int a,int b){
int temp=a;
a=b;
b=temp;
}
public static void swap(Excep c,Excep d){
Excep temp=c;
c=d;
d=temp;
}
public static void swap(List<Integer> e,List<Integer> f){
List<Integer> temp=e;
e=f;
f=temp;
}
public static void swap(int[] a){
if(a.length>=2){
int temp=a[0];
a[0]=a[1];
a[1]=temp;
}
}
public static void main(String[] args){
int a=2;
int b=3;
Excep c=new Excep();
Excep d=new Excep();
List<Integer> e=new ArrayList<Integer>();
e.add(1);
e.add(2);
List<Integer> f=new ArrayList<Integer>();
f.add(3);
f.add(4);
System.out.println("交换前:"+a+"、"+b);
swap(a,b);
System.out.println("交换后:"+a+"、"+b);
System.out.println("交换前:"+c+"、"+d);
swap(c,d);
System.out.println("交换后:"+c+"、"+d);
System.out.println("交换前:"+e+"、"+f);
swap(e,f);
System.out.println("交换后:"+e+"、"+f);
int[] g={1,2};
System.out.println("交换前:"+g+":"+g[0]+"、"+g[1]);
swap(g);
System.out.println("交换后:"+g+":"+g[0]+"、"+g[1]);}
输出结果:
交换前:2、3
交换后:2、3
交换前:Excep@527c6768、Excep@65690726
交换后:Excep@527c6768、Excep@65690726
交换前:[1, 2]、[3, 4]
交换后:[1, 2]、[3, 4]
说明直接整体用临时变量交换,最终不发生变化
交换前:[I@2a9931f5:1、2
交换后:[I@2a9931f5:2、1
对内部的交换,最终也会进行交换
文章分享结束,java中的swap什么意思和java swap 方法的答案你都知道了吗?欢迎再次光临本站哦!