java list.get (name)_java list问题 List<teacher> list2 =list; list2.remove("name"); System.out.println...

展开全部

这样打印只能打印出对象地址,teacher这个62616964757a686964616fe58685e5aeb931333363363462也是引用对象类型不过后面你又remove了一个字符串,就不懂了。class Teacher{

private String name;

set;get;

}

List list = new ArrayList();

Teacher t = new Teacher();

t.setName("name1");

Teacher t2 = new Teacher();

t.setName("name2");

list.add(t);

list.add(t2);

//这样写注意内存地址相同,下面遍历是有问题的

List list2 = list;

//应该这样写

List list2 = new ArrayList();

list2.addAll(list);

for(int i=0;i

if("name2".equls(list2.get(i).getName())){

list2.remove(i);

System.out.println("删除了list2的:"+list.get(i).getName());

}else{

System.out.println("保留了list2的:"+list.get(i).getName());

}

}

纯手写代码铁定有错误,不过意思应该都表达出来了,在集合中根据条件去除元素,这里牵涉到引用类型的对象的用法,和集合遍历删除需要注意的东西,你不能一边遍历它,还一边删除或增加自身的元素,不过如果使用递归到是可以的

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值