1. 程式人生 > >8.可變物件(無序表和有序表——含java庫中應用)

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物件修改物件。