8.可變物件(無序表和有序表——含java庫中應用)
阿新 • • 發佈:2019-01-31
在下列引用中,在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物件修改物件。