关于java的set方法意义
一直不明白为什么有的未定义过set方法的集合要在上面先定义一个同样类型的集合作为容器,然后把操作过的数据再一个个装回来@Testpublic void libraryTest(){ArrayList<String> arrayList = new ArrayList<>();arrayList.add(&
·
一直不明白为什么有的未定义过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方法虽然改变了对象的某些内容,但是它在集合之中的地址是不曾变过的
- 而基本数据类型的数据,变化值的同时地址已经发生了变化,必须每次都把遍历的每个数据单独保存起来
更多推荐
已为社区贡献1条内容
所有评论(0)