關於java的set方法意義
阿新 • • 發佈:2019-02-17
一直不明白為什麼有的未定義過set方法的集合要在上面先定義一個同樣型別的集合作為容器,然後把操作過的資料再一個個裝回來
@Test public void libraryTest(){ ArrayList<String> arrayList = new ArrayList<>(); arrayList.add("a1"); arrayList.add("a2"); arrayList.add("a41"); arrayList.add("a5"); arrayList.add("a6"); //操作集合 for (String str : arrayList) { str = str + "END"; } }
而定義過set方法的物件則不需要
public class AwakeTest { class StringUser{ private String str; public StringUser(String str){ this.str = str; } public String getStr() { return str; } public void setStr(String str) { this.str += str; } } @Test public void libraryTest(){ ArrayList<StringUser> arrayListDM = new ArrayList<>(); arrayListDM.add(new StringUser("d1")); arrayListDM.add(new StringUser("d2")); arrayListDM.add(new StringUser("d3")); arrayListDM.add(new StringUser("d4")); arrayListDM.forEach(item -> item.setStr("END")); System.err.println(arrayListDM); } public void set(String s) { StringBuilder stringBuilder = new StringBuilder(); stringBuilder.append(s); stringBuilder.append("hsapfhoag"); }
}
- 因為set方法雖然改變了物件的某些內容,但是它在集合之中的地址是不曾變過的
- 而基本資料型別的資料,變化值的同時地址已經發生了變化,必須每次都把遍歷的每個資料單獨儲存起來