日期:2014-05-20 浏览次数:20884 次
public class People {
public String name;
public String sex;
public People(String name, String sex) {
this.name = name;
this.sex = sex;
}
}
import java.util.ArrayList;
import java.util.List;
public class Service {
public List<People> getList(List<People> list) {
List<People> l1 = new ArrayList<People>();
People p = new People("123", "男");
for (People p1 : list) {
p.name = p1.name;
p.sex = p1.sex;
System.out.println(p.name + " " + p.sex);
l1.add(p);
}
return l1;
}
}
import java.util.ArrayList;
import java.util.List;
public class Test {
public static void main(String[] args) {
List<People> l = new ArrayList<People>();
l.add(new People("aaa", "男"));
l.add(new People("bbb", "女"));
List<People> result = new Service().getList(l);
for (People p : result) {
System.out.println(p.name + " " + p.sex);
}
}
//参考:当修改p属性后,list中的元素属性也会变化
import java.util.*;
class People
{
public String name;
public String sex;
public People(String name, String sex)
{
this.name = name;
this.sex = sex;
}
public String toString()
{
return this.name+"-"+this.sex;
}
}
class Test
{
public static void main(String []args)
{
People p = new People("aa","AA");
List<People> list = new ArrayList<People>();
list.add(p);
System.out.println(list);
p.name = "bb";//注意:当修改p属性后,list中的元素属性也会变化
list.add(p);
System.out.println(list);
}
}
------解决方案--------------------
People p = new People("123", "男");这句代码放到for循环中,就可以得到你想要的结果了,至于什么原因,给你点提示,对象与引用的问题,两个引用指向同一个对象,那么这两个引用就有相同数据了。仔细想想。。
------解决方案--------------------