有一个 studenta 类、
一个对象
id name age
1 1n 1
另一个 studentb 类
一个集合
id name age
2 2n 2
3 3n 3
现在要做的是 把studenta中 id 和 name 与studentb中的id 和 name 互换 ,age 不变
从studentb的最后数据开始。
这是开始的数据
id name age id name age
1 1n 1 2 2n 2
3 3n 3
第一次交换
id name age id name age
3 3n 1 2 2n 2
1 1n 3
第二次交换
id name age id name age
2 2n 1 3 3n 2
1 1n 3
一个对象
id name age
1 1n 1
另一个 studentb 类
一个集合
id name age
2 2n 2
3 3n 3
现在要做的是 把studenta中 id 和 name 与studentb中的id 和 name 互换 ,age 不变
从studentb的最后数据开始。
这是开始的数据
id name age id name age
1 1n 1 2 2n 2
3 3n 3
第一次交换
id name age id name age
3 3n 1 2 2n 2
1 1n 3
第二次交换
id name age id name age
2 2n 1 3 3n 2
1 1n 3
a=b;
b=temp思路差不多应该可以
import java.util.*;class Student
{
int id;
String name;
int age; Student(int id,String name,int age)
{
this.id=id;
this.name=name;
this.age=age;
}
}
class SwitchElement
{
public static void main(String[] args)
{
switchElement();
} public static void switchElement()
{
Student stua=new Student(1,"1n",1);
ArrayList<Student> stub=new ArrayList<Student>();
stub.add(new Student(2,"2n",2));
stub.add(new Student(3,"3n",3));
System.out.println("start...");
System.out.println(stua.id+","+stua.name);
for(Student s:stub)
System.out.println(s.id+","+s.name);
System.out.println("change...");
for(int x=stub.size()-1;x>=0;x--)
{
Student stu=stub.get(x);
//System.out.println(stu.id+","+stu.name);
change(stua,stu);
} System.out.println(stua.id+","+stua.name);
for(Student s:stub)
System.out.println(s.id+","+s.name);
} public static void change(Student s1,Student s2)
{
int temp=s1.id;
s1.id=s2.id;
s2.id=temp; String temp2=s1.name;
s1.name=s2.name;
s2.name=temp2;
}
}
import java.util.List;public class StudentTest {
public static void main(String[] args) {
Student stu1= new Student();
stu1.setId(1);
stu1.setName("1a");
stu1.setAge(1);
Student stu2= new Student();
stu2.setId(2);
stu2.setName("2a");
stu2.setAge(2);
Student stu3= new Student();
stu3.setId(3);
stu3.setName("3a");
stu3.setAge(3);
Student stu4= new Student();
stu4.setId(4);
stu4.setName("4a");
stu4.setAge(4);
List<Student> stus = new ArrayList<Student>();
stus.add(stu2);
stus.add(stu3);
stus.add(stu4);
// System.out.println(stu1+"\t"+stu2+"\t"+stu3);
// for(int i=stus.size()-1;i>=0;i--){
// System.out.println(stus.get(i));
// Student tempa = stus.get(i);
// stu1.setId(tempa.getId());
// stu1.setName(tempa.getName());
//
// }
System.out.println("对换前:"+stu1+"\t"+stu2+"\t"+stu3+"\t"+stu4);
/*** **/
Student stuClone = null;
int size=stus.size()-1;
while(size>=0){
stuClone =(Student)stu1.clone();
System.out.println("拷贝:"+stuClone);
Student temp = stus.get(size);
stu1.setId(temp.getId());
stu1.setName(temp.getName());
temp.setId(stuClone.getId());
temp.setName(stuClone.getName());
size--;
}
System.out.println("对换后:"+stu1+"\t"+stu2+"\t"+stu3+"\t"+stu4);
for(Student s:stus){
System.out.println("对换后:"+s);
}
}
}
结果:
对换前:Student [ id=1, name=1a,age=1] Student [ id=2, name=2a,age=2] Student [ id=3, name=3a,age=3] Student [ id=4, name=4a,age=4]
拷贝:Student [ id=1, name=1a,age=1]
拷贝:Student [ id=4, name=4a,age=1]
拷贝:Student [ id=3, name=3a,age=1]
对换后:Student [ id=2, name=2a,age=1] Student [ id=3, name=3a,age=2] Student [ id=4, name=4a,age=3] Student [ id=1, name=1a,age=4]
对换后:Student [ id=3, name=3a,age=2]
对换后:Student [ id=4, name=4a,age=3]
对换后:Student [ id=1, name=1a,age=4]