8.可变对象(无序表和有序表——含java库中应用)

在下列引用中,在chris 修改last的值后,list中的值也改变。因为list和chris引用的是同一个对象。

所以chris客户可以修改它植入list中的对象。这是一个便利的方案。

但修改ADT中可变对象的能力,使客户有可能破坏ADT的完整性。


           Name chris = new Name( "Chris", "Coffee");

           List<Name> list = new ArrayList<Name>();
            list.add(chris);
           System. out.println( list);

           chris.setLast( "Smith");//修改chris 的值

           System. out.println( list);

输出:
这里写图片描述
有序表TreeSet:
修改chris的值,并不能修改set中对象的值。所以不会造成表无序。

  String chris = new String( "Chris");

           TreeSet<String> set= new TreeSet<String>();
           list.add(chris);
           System. out.println(set );

           chris = new String( "Amis"); //修改chris 的值

           System. out.println(chris);

           System. out.println(set );

输出:

这里写图片描述
有序表只可以有他本身的list对象修改对象。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值