栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Java贴士1:集合类存放自定义对象

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Java贴士1:集合类存放自定义对象

一、简述

第一次使用java做课设的时候,涉及到在运用到集合类存放自定义对象,注意到当你对此自定义对象的某个属性进行修改后,集合类中存储的此对象对应的属性也会发生修改。
后来经过复习java知识发现,java在将自定义对象存入集合类中,表面上是将其“挪”过去了,但是实际上只是存放了此自定义对象的地址,表现为当你对集合类中的此对象抑或是原先定义好的此对象进行修改后,另一方也会对应进行修改。原因就是java实际上是找到了这个对象名称背后的地址,在这个地址块上进行修改,所以后期再调取这个地址块时,无论是哪一方调取,都会因另一方修改而改变。
形象一点的比喻就是说,两个客户端连接了同一个服务器,无论是哪个客户端上对服务器数据进行了修改,另一个客户端再查询这个数据时,都会变化。
具体点就上代码

二、代码

首先是自定义类

public class Test {
    private String name;

    public Test(String name) {
        this.name = name;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }
}

其次是测试的主函数

public class App {
    public static void main(String[] args) {
        HashMap hm=new HashMap<>();
        Test t=new Test("z");
        hm.put("z",t);
        t.setName("x");
        System.out.println(hm.get("z").getName());
        hm.get("z").setName("z");
        System.out.println(t.getName());
        Test t1=hm.get("z");
        t1.setName("c");
        System.out.println(t.getName());
        System.out.println(hm.get("z").getName());
    }
}

这是运行的结果,非常显而易见

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/644036.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号